Méthode Equals de Système.Les Collections.Génériques.Liste<T>...?

Je crée une classe qui dérive de la Liste...

public class MyList : List<MyListItem> {}

J'ai surchargé Égale de MyListItem...

public override bool Equals(object obj)
{
    MyListItem li = obj as MyListItem;
    return (ID == li.ID);  //ID is a property of MyListItem
}

Je voudrais avoir une méthode Equals dans le Maliste objet qui permettra de comparer chaque élément de la liste, l'appel de Equals() sur chaque MyListItem objet.

Il serait agréable de simplement appeler...

MyList l1 = new MyList() { new MyListItem(1), new MyListItem(2) };
MyList l2 = new MyList() { new MyListItem(1), new MyListItem(2) };

if (l1 == l2)
{
    ...
}

...et les comparaisons de la liste se fait par valeur.

Quelle est la meilleure façon...?

OriginalL'auteur Sambo | 2010-03-08