asp.net通过distinct过滤集合(list)中重复项的办法
/// <summary> /// 权限Distinct比较器 /// </summary> public class PermissionIdComparer : IEqualityComparer<SystemPermissionModel> { public bool Equals(SystemPermissionModel x, SystemPermissionModel y) { if (x == null) { return y == null; } return x.Id == y.Id; } public int GetHashCode(SystemPermissionModel obj) { if (obj == null) { return 0; } return obj.Id.GetHashCode(); } }
把上面这个类作为Distinct方法的参数传入即可。
实际上是定义了一个比较器,集合在调用Distinct方法时,会自动使用我们传入的这个自定义比较器进行比较。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。permissions = permissions.Distinct(new PermissionIdComparer()).ToList();

更多精彩