我有一个对象A的两个列表(L1,L2),L1用于在更改之前存储对象列表(多对多关系)。 L2是改变后的关系。我需要保留常用元素,但添加新元素并删除不在L2中的元素。我想知道是否有一个内衬我可以用LINQ来完成这个。如果您需要更多信息,请告诉我。
提前致谢
答案 0 :(得分:17)
如果我理解你的要求,这应该有效:
L1.AddRange(L2.Except(L1));
L1.RemoveAll(item => !L2.Contains(item));
不是单行,但足够接近......
答案 1 :(得分:1)
尝试这样的事情
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 };
答案 2 :(得分:1)
也许Linq的布尔运算符如Intersect()对你有帮助吗?