扩展linq 去重复的方法

2019-08-14  本文已影响0人  码嘟嘟

/// <summary>

        /// 扩展linq  去重复的方法

        /// </summary>

        /// <typeparam name="TSource"></typeparam>

        /// <typeparam name="TKey"></typeparam>

        /// <param name="source"></param>

        /// <param name="keySelector"></param>

        /// <returns></returns>

        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;

                }

            }

上一篇 下一篇

猜你喜欢

热点阅读