C#过滤重复数据,使用泛型

#region List<T> 过滤重复数据
public delegate bool EqualsComparer<T>(T x, T y);
/// <summary>
/// 过滤重复数据
/// </summary>
public class Comparint<T> : IEqualityComparer<T>
{
private EqualsComparer<T> ec;
public Comparint() { }
public Comparint(EqualsComparer<T> e)
{
this.ec = e;
}
#region IEqualityComparer<T> 成员

public bool Equals(T x, T y)
{
if (null != this.ec)
return this.ec(x, y);
else
return false;
}

public int GetHashCode(T obj)
{
return obj.ToString().GetHashCode();
}

#endregion
}
#endregion

使用示例

string[] strList = oldMailList.Split(',');
string strNewMailList = "";


List<string> emailList = new List<string>();
try
{
emailList.AddRange(strList);//增加到List中
List<string> emailList2 = emailList.Distinct(new Comparint<string>(
delegate(string x, string y)
{
if (null != x && null != y)
return x.GetHashCode() == y.GetHashCode();
return false;
}
)).ToList();
}

作者:chhuic

出处:http://chhuic.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/chhuic/p/2111532.html