第一种去除重复方法: int count=receiverlist.Count(a => receiverlist.FindAll(b => b == a).Count > 1);
如果存在两个“2”则count返回2,如果不存在重复返回0.
第二种去重复方法 Distinct
public class Product
{
public string Name { get; set; }
public int Code { get; set; }
public int ID { get; set; }
}
public delegate bool EqualsComparer<T>(T x, T y);
public class Compare<T> : IEqualityComparer<T>
{
private EqualsComparer<T> _equalsComparer;
public Compare(EqualsComparer<T> equalsComparer)
{
this._equalsComparer = equalsComparer;
}
public bool Equals(T x, T y)
{
if (null != this._equalsComparer)
return this._equalsComparer(x, y);
else
return false;
}
public int GetHashCode(T obj)
{
return obj.ToString().GetHashCode();
}
}
static void Main(string[] args)
{
Product[] products = { new Product { Name = "apple", Code = 9,ID=232 },
new Product { Name = "orange", Code = 4 ,ID=234},
new Product { Name = "apples", Code = 9 ,ID=232},
new Product { Name = "lemon", Code = 12 ,ID=234} };
List<Product> lambdaList = products.Distinct(new Compare<Product>(
(x, y) => (null != x && null != y) && (x.ID == y.ID))).ToList(); //ID是你要根据哪个进行去重复,也可以code
foreach (var product in lambdaList)
Console.WriteLine(product.Name + " " + product.Code);
Console.ReadLine();
}
浙公网安备 33010602011771号