C# List Distinct用法

时间:2025-01-24 19:39:40

class ListDistinctDemo
{
static void Main(string[] args)
{
List personList = new List(){
new Person(3),//重复数据
new Person(3),
new Person(2),
new Person(1)
};

//使用匿名方法
List delegateList = (new Compare(
delegate(Person x, Person y)
{
if (null == x || null == y) return false;
return == ;
})).ToList();

(s => ());

//使用 Lambda 表达式
List lambdaList = (new Compare(
(x, y) => (null != x && null != y) && ( == ))).ToList();

(s => ());

//排序
((x, y) => ());
(s => ());

}
}
public class Person
{
public int ID { get; set; }
public string Name { get; set; }

public Person(int id)

{
= id;
}
}

public delegate bool EqualsComparer(T x, T y);

public class Compare : IEqualityComparer
{
private EqualsComparer _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 ().GetHashCode();
}

}