簡體   English   中英

LINQ比較兩個列表 - 添加新列表,刪除舊列表,保留相同的列表

[英]LINQ Comparing Two Lists - Add new, remove old, leave the ones in common

我有一個對象A的兩個列表(L1,L2),L1用於在更改之前存儲對象列表(多對多關系)。 L2是改變后的關系。 我需要保留常用元素,但添加新元素並刪除不在L2中的元素。 我想知道是否有一個內襯我可以用LINQ來完成這個。 如果您需要更多信息,請告訴我。

提前致謝

如果我理解你的要求,這應該有效:

L1.AddRange(L2.Except(L1));
L1.RemoveAll(item => !L2.Contains(item));

不是單行,但足夠接近......

嘗試這樣的事情

var a = from ele in list1
        let alleles = list1.Union(list2)
        let deleles = alleles.Except(list1)
        let neweles = alleles.Except(list2)
        select new { DeletedEles = deleles, NewEles = neweles };

也許Linq的布爾運算符如Intersect()對你有幫助嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM