Linq问题记录2017年7月16日 DIstinct()问题

在C#中使用Linq查询时,发现调用Distinct()方法无法实现结果去重。为解决此问题,可以尝试通过分组后取第一个值、扩展Linq的Distinct()方法或者重写Distinct()比较器的方式来实现数据去重。这些解决方案可以在多个项目中复用,提高代码效率。
摘要由CSDN通过智能技术生成

C#中使用linq查询时,查询结果集调用Distinct()方法并没有作用,结果依旧没有去重复。

解决办法
1.分组后取第一个值

List<Person> distinctPeople = allPeople
  .GroupBy(p => new {p.Id, p.Name} )
  .Select(g => g.First())
  .ToList();

2.扩展Distinct()方法,在一个静态类里面扩展Linq的原生方法,方法可写在公共库里面,写一次就可以反复调用

public static class ComparintExtensions
{
    public static IEnumberable<T> DistinctBy<T>(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值