C# Distinct扩展

来源:互联网 发布:蓝光刻录机软件 编辑:程序博客网 时间:2024/05/02 01:49

Distinct这个方法很好用,但是很多时候 有不能满足我们的实际需要,于是乎很多时候 需要自己实现,最近实在没有时间写写博客,就拿这个拉凑个数吧, code 如下:

 /// <summary>        /// 去掉集合中的重复        /// </summary>        /// <typeparam name="TSource"></typeparam>        /// <param name="source"></param>        /// <param name="fun">theGroup.Distinct((x, y) => x.BetNo == y.BetNo && x.DictNoTypeId == y.DictNoTypeId)</param>        /// <returns></returns>        public static List<TSource> Distinct<TSource>(this IEnumerable<TSource> source, Func<TSource, TSource, bool> fun)        {            List<TSource> ret = new List<TSource>();            foreach (var ts in source)            {                bool exist = false;                for (int j = 0; j < ret.Count; j++)                {                    if (fun(ret[j], ts))                    {                        exist = true;                        break;                    }                }                if (!exist)                {                    ret.Add(ts);                }            }            return ret;        }


原创粉丝点击