8,497
社区成员
发帖
与我相关
我的任务
分享
int[] intAry1 = { 5, 15, 23, 30, 33, 40 };
int[] intAry2 = { 10, 20, 30, 40, 50, 60, 70, 80 };
var query1 =
from val1 in intAry1
join val2 in intAry2 on /* val2%val1==0*/ into grps
from grp in grps.DefaultIfEmpty()
select new { val1, grp };
int[] intAry1 = { 5, 15, 23, 30, 33, 40 };
int[] intAry2 = { 10, 20, 30, 40, 50, 60, 70, 80 };
var query1 =
from val1 in intAry1
join val2 in intAry2 on 0 equals 0 into grps
from grp in grps.DefaultIfEmpty()
where grp % val1 == 0
select new { val1, grp };
foreach (var item in query1)
{
Console.WriteLine(item.val1 + "--" + item.grp);
}
其实我还是想说,左联是建立在2个表类型的数据存在关系的基础上的。而你只是2个简单的Int数组,其实他们根本没有左联的关系。而这里说的整除关系,只能作为条件。就像2楼说的,linq的左联关系比较苛刻。所以equals不行。int[] intAry1 = { 5, 15, 23, 30, 33, 40 };
int[] intAry2 = { 10, 20, 30, 40, 50, 60, 70, 80 };
var query1 =
from val1 in intAry1
from val2 in intAry2
where val2%val1==0
select new { val1,val2 };
foreach (var item in query1)
{
Console.WriteLine(item.val1+"--"+item.val2);
}
Console.ReadLine();