其中 Intersect 是取两个集合的交集,特别有用。交集的定义可以使用接口实现,否则就是集合元素自身是否一致来判断。关于交集的定义,可以看StackOverFlow:
https://stackoverflow.com/questions/853526/using-linq-to-remove-elements-from-a-listt
使用方法: var list3= list1.Intersect(list2, new KeyEqualityComparer(s => s.Id));我自己稍微改了一下public class CommonEqualityComparer : IEqualityComparer
{
public CommonEqualityComparer(Func arg_fnCompare)
{
this._fnCompare = arg_fnCompare;
}
public bool Equals(T x, T y)
{
return this._fnCompare(x).Equals(this._fnCompare(y));
}
public int GetHashCode(T obj)
{
return this._fnCompare(obj).GetHashCode();
}
private readonly Func _fnCompare;
}欢迎来到技术之家,
如需转载,烦请保留本文链接和出处:http://www.jszja.com/contents/13/402.html
您的支持将是我们前进的动力!如对本篇文章有疑问或建议,请通过本站下方邮箱联系我们,让技术之家每天进步一点点!(●'◡'●)