除了不同类型的清单

本文关键字:同类型 | 更新日期: 2023-09-27 18:11:12

我有List<TypeA>类型的originalSetList<TypeB>类型的excludibleSet两个列表。我需要一个类型为List<TypeA>的新列表newSet,该列表仅包含与excludibleSet中的元素无关的originalSet元素。

这两种类型是完全不同的(只有一些共同的属性),所以我不能使用ExceptEqualityComparer,但我必须手工操作。

更深入地说:假设我在TypeATypeB中有prop1prop2属性。我想从originalSet中排除prop1prop2等于prop1prop2excludibleSet元素的所有元素。

我如何使用Linq或以一种优雅的方式做到这一点?

除了不同类型的清单

你可以尝试这样做:

var newSet = originalSet.Where(x=>!excludibleSet.Any(y=>y.prop1==x.prop1 && 
                                                        y.prop2==x.prop2)
                        ).ToList();