Я создаю класс, который происходит из Списка...
public class MyList : List<MyListItem> {}
Я переопределил, Равняется MyListItem...
public override bool Equals(object obj)
{
MyListItem li = obj as MyListItem;
return (ID == li.ID); // ID is a property of MyListItem
}
Я хотел бы иметь, Равняется методу в объекте MyList также, который сравнит каждый объект в списке, вызов Равняется () на каждом объекте MyListItem.
Было бы хорошо просто звонить...
MyList l1 = new MyList() { new MyListItem(1), new MyListItem(2) };
MyList l2 = new MyList() { new MyListItem(1), new MyListItem(2) };
if (l1 == l2)
{
...
}
... и имейте сравнения списка, сделанного значением.
Каков лучший способ...?
Вы можете использовать метод linq SequenceEqual в списке, поскольку ваш список реализует IEnumerable. Это позволит убедиться, что все элементы одинаковы и находятся в одинаковом порядке. Если порядок может быть другим, вы можете сначала отсортировать списки.