除了不同类型的清单
本文关键字:同类型 | 更新日期: 2023-09-27 18:11:12
我有List<TypeA>
类型的originalSet
和List<TypeB>
类型的excludibleSet
两个列表。我需要一个类型为List<TypeA>
的新列表newSet
,该列表仅包含与excludibleSet
中的元素无关的originalSet
元素。
这两种类型是完全不同的(只有一些共同的属性),所以我不能使用Except
和EqualityComparer
,但我必须手工操作。
更深入地说:假设我在TypeA
和TypeB
中有prop1
和prop2
属性。我想从originalSet
中排除prop1
和prop2
等于prop1
和prop2
的excludibleSet
元素的所有元素。
我如何使用Linq或以一种优雅的方式做到这一点?
你可以尝试这样做:
var newSet = originalSet.Where(x=>!excludibleSet.Any(y=>y.prop1==x.prop1 &&
y.prop2==x.prop2)
).ToList();