对于类型的对比,linq原来的对比是区分不了的。对两个list进行查询交集方法。交集,并集的函数是直接用Linq的,这里不再写。 List<T> intersectList = queryList.AsQueryable().Intersect(sqlList, ...
对于类型的对比,get='_blank'>linq原来的对比是区分不了的。
对两个list进行查询交集方法。交集,并集的函数是直接用Linq的,这里不再写。
List<T> intersectList = queryList.AsQueryable().Intersect(sqlList, new ListEquality<T>()).ToList();
1 public class ListEquality<T> : IEqualityComparer<T> where T : new() 2 { 3 4 PropertyInfo[] propertys = typeof(T).GetProperties().Where(p => p.Name != "ParamInfo").Where(p => p.Name != "State").ToArray(); 5 6 7 public bool Equals(T x, T y) 8 { 9 foreach (var pe in propertys)10 {11 object o_x = pe.GetValue(x, null);12 object o_y = pe.GetValue(y, null);13 if (!object.Equals(o_x, o_y))14 {15 return false;16 }17 }18 return true;19 }20 21 public int GetHashCode(T obj)22 {23 if (obj == null)24 {25 return 0;26 }27 else28 {29 return obj.ToString().GetHashCode();30 }31 }32 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:ListT的对比
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。