0%

Distinct对象数组去重复

c#中的Distinct大多用于对数组去重,一般数组为基础的数据类型,例如 int,string.也可以用于对象去重,我们看看C#对Distinct方法的定义

image-20220802110710732

Distinct对象数组去重复

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

public class ReceiptOwnerEqualityComparer : IEqualityComparer<ReceiptOwner>
{
public bool Equals(ReceiptOwner x, ReceiptOwner y)
{
return x.ReceiptId == y.ReceiptId
&& x.UserName == y.UserName
&& x.SchoolName == y.SchoolName
&& x.DepartmentName == y.DepartmentName;
}

public int GetHashCode(ReceiptOwner table)
{
var key = $"{table.ReceiptId}{table.UserName}{table.SchoolName}{table.DepartmentName}";
return key.GetHashCode();
}
}

继承IEqualityComparer接口必须实现 Equals 和 GetHashCode 方法

我们比较的时候,传入一个 ReceiptOwnerEqualityComparer 的实体即可:

1
.Distinct(new ReceiptOwnerEqualityComparer()).ToList();

参考

https://blog.csdn.net/lishuangquan1987/article/details/76096022

-------------本文结束感谢您的阅读-------------
本网站所有内容均收集于互联网或自己创作, 方便于网友与自己学习交流,如有侵权,请留言,立即处理

欢迎关注我的其它发布渠道

本文标题:Distinct对象数组去重复

文章作者:peter

发布时间:2022年08月02日 - 11:08

最后更新:2022年08月02日 - 11:08

原始链接:https://www.123zhibei.xyz/article/2c16fd3f.html

许可协议: 转载请保留原文链接及作者。