[英]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.