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;
}