/// <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方法时,会自动使用我们传入的这个自定义比较器进行比较。
permissions = permissions.Distinct(new PermissionIdComparer()).ToList();