Linq DistinctExtensions(linq根据条件去重)

public static class DistinctExtensions
    {
        public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
        {
            HashSet<TKey> keys = new HashSet<TKey>();
            foreach (TSource element in source)
                if (keys.Add(keySelector(element)))
                    yield return element;
        }

    }
View Code

 使用方式

  tmpList.DistinctBy(m => m.Id);

 or

 tmpList.DistinctBy(m => m.Name);

 

posted @ 2016-07-04 10:56  ligl007  阅读(560)  评论(0编辑  收藏  举报