Linq利用Distinct去除重复项(可自己指定)

来源:互联网 发布:淘宝有没有隐形降权 编辑:程序博客网 时间:2024/05/17 00:52
添加一个扩展方法
public static IEnumerable<TSource> DistinctBy<TSource, TKey> (this IEnumerable<TSource> source, Func<TSource, TKey> keySelector){    HashSet<TKey> seenKeys = new HashSet<TKey>();    foreach (TSource element in source)    {        if (seenKeys.Add(keySelector(element)))        {            yield return element;        }    }}

使用方法如下(针对ID,和Name进行Distinct)
var query = people.DistinctBy(p => new { p.Id, p.Name });

若仅仅针对ID进行distinct:
var query = people.DistinctBy(p => p.Id);

原创粉丝点击