.NET List compare distinct去重

标签:compare set distinct name ret clas

List去重
List去重
List去重

  1. List去重
    List ilist = new List() { 1, 2, 3, 4, 2, 3 };
    ilist = ilist.Distinct().ToList();
    foreach (var item in ilist)
    {
    Console.WriteLine(item);
    }
    技术分享图片

  2. List去重
    List strList = new List() { “4”, “4”, “5”, “6”, “6” };
    strList = strList.Distinct().ToList();
    foreach (var item in strList)
    {
    Console.WriteLine(item);
    }
    技术分享图片

  3. List去重
    public class User
    {
    public int Id { get; set; }
    public string Name { get; set; }
    }

//去重类
public class LambdaComparer : IEqualityComparer
{
private readonly Func<T, T, bool> _lambdaComparer;
private readonly Func<T, int> _lambdaHash;
public LambdaComparer(Func<T, T, bool> lambdaComparer)
: this(lambdaComparer, EqualityComparer.Default.GetHashCode)
{
}
public LambdaComparer(Func<T, T, bool> lambdaComparer, Func<T, int> lambdaHash)
{
if (lambdaComparer == null)
throw new ArgumentNullException(“lambdaComparer”);
if (lambdaHash == null)
throw new ArgumentNullException(“lambdaHash”);
_lambdaComparer = lambdaComparer;
_lambdaHash = lambdaHash;
}

public bool Equals(T x, T y)
{
return _lambdaComparer(x, y);
}

public int GetHashCode(T obj)
{
return _lambdaHash(obj);
}
}

//Main方法
List list = new List()
{
new User() { Id = 1, Name = “张三” } ,
new User() { Id = 1, Name = “张三” } ,
new User() { Id = 3, Name = “李四” } ,
};
list = list.Distinct(new LambdaComparer((a, b) => a.Id == b.Id && a.Name == b.Name, obj => obj.ToString().GetHashCode())).ToList();
foreach (var item in list)
{
Console.WriteLine(“Id:” + item.Id + “, Name:” + item.Name);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值