C# Language distinto


Esempio

Restituisce valori univoci da un oggetto IEnumerable . L'univocità viene determinata utilizzando il comparatore di uguaglianza predefinito.

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

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

Per confrontare un tipo di dati personalizzato, è necessario implementare l' IEquatable<T> e fornire i metodi GetHashCode ed Equals per il tipo. Oppure il comparatore di uguaglianza può essere sovrascritto:

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

List<Person> people;

distinct = people.Distinct(SSNEqualityComparer);