0
我有这个群组加入:LINQ的群组加入与DefaultIfEmpty
var groupjoin = cData.GroupJoin(
aData,
c => c.Id,
a => a.Id,
(c, joined) => new { c, a = joined.DefaultIfEmpty() })
.ToList();
在我的测试数据,没有匹配。所以,我有这样的代码:
var difference = groupjoin.FirstOrDefault(g =>
g.a == null);
我期待difference
,使之与作为目标物从cData
一个“C”属性的匿名对象,而“一”属性,该属性为null。
但是,g.a == null
从来就不是真的,所以FirstOrDefault
给我一个空的difference
。实际上,g.a
是DefaultIfEmptyIterator
和g.a.ToList()
给了我1的计数,并且g.a.ToList[0] == null
是正确的。
我在这里做了什么错?
如果你使用'Join',你的假设是正确的。 'GroupJoin'是不同的,请参阅下面的答案。 –