[英]Why Does a join in LINQ generate extra objects in C#?
我知道標題聽起來很熟,我敢肯定對此有一個非常簡單的解釋,但現在我不介意。
我正在使用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
看照片。 我真的不明白。
請參閱下面的cdhowie評論。 他為我解決了這個問題。 謝謝。
聽起來您在一個或兩個列表中的某些元素具有相同的Header,從而得出笛卡爾乘積。
您可以通過查看em1.EmailBindingList.Select(i => i.Header).Distinct().Count()
的結果來驗證這一點,與em2相同。 如果其中任何一個產生的值都低於15875,則幾乎可以肯定是原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.