Сравните два списка, пункт за пунктом, используя linq

1

Я хочу сравнить два списка, по элементам. Как я могу выразить следующий код с помощью linq?

bool result = true;
var list1 = new List<int> { 10, 20, 30, 40 };
var list2 = new List<int> { 10, 20, 30, 40 };
for (int index = 0; index < list1.Count(); index++)
{
   result &= list1[index] == list2[index];
}
Теги:
linq
list

1 ответ

8
Лучший ответ

Вы можете использовать SequenceEqual:

Определяет, равны ли две последовательности, сравнивая элементы, используя сопоставитель равенства по умолчанию для своего типа.

Пример:

bool result = list1.SequenceEqual(list2);
  • 3
    Линк такой мощный. Когда-нибудь это покорит мир. Кстати, я хотел бы проверить количество элементов в списках, прежде чем перечислять их. Что-то вроде result = (list1.Count == list2.Count) && list1.SequenceEqual(list2)
  • 0
    @SergeyBerezovskiy Почему реализация Linq не делает это сама?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню