C# 不同类型的列表除外
我有两个类型为C# 不同类型的列表除外,c#,list,C#,List,我有两个类型为list的列表originalSet,和类型为list的excludibleSet。 我需要一个类型为list的新列表newSet,它只包含与excludibleSet中的元素无关的originalSet元素 这两种类型是完全不同的(只有少数几个属性是相同的),因此我不能使用,除了使用EqualityComparer的,但我必须手动使用所有属性 更深入:假设我在TypeA和TypeB之间的公共空间中有属性prop1和prop2。 我想从originalSet中排除所有prop1和p
list
的列表originalSet
,和类型为list
的excludibleSet
。
我需要一个类型为list
的新列表newSet
,它只包含与excludibleSet
中的元素无关的originalSet
元素
这两种类型是完全不同的(只有少数几个属性是相同的),因此我不能使用,除了使用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();
您可以尝试以下方法:
var newSet = originalSet.Where(x=>!excludibleSet.Any(y=>y.prop1==x.prop1 &&
y.prop2==x.prop2)
).ToList();
TypeA和TypeB是否从同一超级类型派生prop1+2?TypeA和TypeB是否从同一超级类型派生prop1+2?