int[] intAry1 = { 5, 15, 23, 30, 40 ,33 };
int[] intAry2 = { 10, 20, 30, 50, 60, 70, 80 };
var query1 =
from val1 in intAry1
join val2 in intAry2 on val1 % 5 equals val2 % 15 into val2Grp
from grp in val2Grp.DefaultIfEmpty(int.MaxValue)
select new { VAL1 = val1, VAL2GRP = grp };
為啥以上代碼可以實作左連接?val2Grp只存了intAry2 分組后的結果,最后select又是怎么聯系到一起的呢?
uj5u.com熱心網友回復:
因為 join 拿的是兩張表都存在的而后面DefaultIfEmpty 拿的是以左表為主,不存在的。
2個并集就是left join了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/167265.html
標籤:C#
