Равняется методу Системы. Наборы. Универсальный. Список <T> …?

Я создаю класс, который происходит из Списка...

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)
{
    ...
}

... и имейте сравнения списка, сделанного значением.

Каков лучший способ...?

11
задан bkaid 8 March 2010 в 01:28
поделиться

1 ответ

Вы можете использовать метод linq SequenceEqual в списке, поскольку ваш список реализует IEnumerable. Это позволит убедиться, что все элементы одинаковы и находятся в одинаковом порядке. Если порядок может быть другим, вы можете сначала отсортировать списки.

27
ответ дан 3 December 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: