C# Distinct

示例

从中返回唯一值IEnumerable。使用默认的相等比较器确定唯一性。

int[] array = { 1, 2, 3, 4, 2, 5, 3, 1, 2 };

var distinct = array.Distinct();
// 独特= {1,2,3,4,5}

为了比较自定义数据类型,我们需要实现IEquatable<T>接口并为该类型提供GetHashCode和Equals方法。否则相等比较器可能会被覆盖:

class SSNEqualityComparer : IEqualityComparer<Person> {
    public bool Equals(Person a, Person b) => returna.SSN== b.SSN;
    public int GetHashCode(Person p) => p.SSN;
}

List<Person> people;

distinct = people.Distinct(SSNEqualityComparer);