我知道标题听起来很糟糕,我相信这有一个非常简单的解释,但我现在正在失去理智。
我正在使用Linq进行交叉查询:
var result = from item1 in em1.EmailBindingList
join item2 in em2.EmailBindingList
on item1.Header equals item2.Header
select item1;
(em1和em2都有15875项,两者都相同)以上应该会给我15875项的结果。
然而,我得到15879
看看pic。我真的不明白。
请参阅下面的cdhowie评论。他为我解决了这个问题。谢谢。
答案 0 :(得分:3)
听起来你在一个或两个列表中都有一些具有相同标题的元素,从而产生了笛卡尔积。
您可以通过查看em1.EmailBindingList.Select(i => i.Header).Distinct().Count()
的结果来验证这一点,对于em2也是如此。如果其中任何一个产生低于15875的值,那么这几乎肯定是原因。