IEnumerable对象的Distinct方法重写

Posted chensong0524

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IEnumerable对象的Distinct方法重写相关的知识,希望对你有一定的参考价值。

public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)

{

  HashSet<TKey> hashSet = new HashSet<TKey>();

  foreach (TSource element in source)

  {

    if (hashSet.Add(keySelector(element)))

    {

      yield return element;

    }

  }

}

以上是关于IEnumerable对象的Distinct方法重写的主要内容,如果未能解决你的问题,请参考以下文章

System.Linq Distinct 方法使用

linq Distinct 自定义去重字段

推荐学习,C#去重Distinct的技巧!

C#黔驴技巧之去重(Distinct)

Lambda表达式去重操作

求助大神,数据库查询结果的去重除了distinct关键字,还有啥别的方法没?