Intersect 交集
Union 并集
Except 差集
用法:
List1.Intersect(List2,new ClassListEquality())
List1.Union(List2,new ClassListEquality())
List1.Except(List2,new ClassListEquality())
public class ClassListEquality : IEqualityComparer<Class> { public bool Equals(Class a, Class b) {
//判断对象是否相等
// return (a.Field1==b.Field1 && a.Field2==b.Field2); return a.Field== b.Field; } public int GetHashCode(Class obj) { if (obj == null) { return 0; } else { return obj.ToString().GetHashCode(); } } }
复杂类型需要重载GetHashCode()与Equals(object obj)方法来判断对象是否相等。
值类型可以直接使用
List1.Intersect(List2)
List1.Union(List2)
List1.Except(List2)
取得结果