标签:compare set distinct name ret clas
List去重
List去重
List去重
-
List去重
List ilist = new List() { 1, 2, 3, 4, 2, 3 };
ilist = ilist.Distinct().ToList();
foreach (var item in ilist)
{
Console.WriteLine(item);
}
技术分享图片 -
List去重
List strList = new List() { “4”, “4”, “5”, “6”, “6” };
strList = strList.Distinct().ToList();
foreach (var item in strList)
{
Console.WriteLine(item);
}
技术分享图片 -
List去重
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
//去重类
public class LambdaComparer : IEqualityComparer
{
private readonly Func<T, T, bool> _lambdaComparer;
private readonly Func<T, int> _lambdaHash;
public LambdaComparer(Func<T, T, bool> lambdaComparer)
: this(lambdaComparer, EqualityComparer.Default.GetHashCode)
{
}
public LambdaComparer(Func<T, T, bool> lambdaComparer, Func<T, int> lambdaHash)
{
if (lambdaComparer == null)
throw new ArgumentNullException(“lambdaComparer”);
if (lambdaHash == null)
throw new ArgumentNullException(“lambdaHash”);
_lambdaComparer = lambdaComparer;
_lambdaHash = lambdaHash;
}
public bool Equals(T x, T y)
{
return _lambdaComparer(x, y);
}
public int GetHashCode(T obj)
{
return _lambdaHash(obj);
}
}
//Main方法
List list = new List()
{
new User() { Id = 1, Name = “张三” } ,
new User() { Id = 1, Name = “张三” } ,
new User() { Id = 3, Name = “李四” } ,
};
list = list.Distinct(new LambdaComparer((a, b) => a.Id == b.Id && a.Name == b.Name, obj => obj.ToString().GetHashCode())).ToList();
foreach (var item in list)
{
Console.WriteLine(“Id:” + item.Id + “, Name:” + item.Name);
}