@quinton.prosacco
Для сравнения двух списков с помощью LINQ можно воспользоваться методами SequenceEqual или All.
Пример использования метода SequenceEqual:
1 2 3 4 |
List<int> firstList = new List<int> { 1, 2, 3, 4, 5 };
List<int> secondList = new List<int> { 1, 2, 3, 4, 5 };
bool listsAreEqual = firstList.SequenceEqual(secondList);
|
Пример использования метода All:
1 2 3 4 |
List<int> firstList = new List<int> { 1, 2, 3, 4, 5 };
List<int> secondList = new List<int> { 1, 2, 3, 4, 5 };
bool listsAreEqual = firstList.All(x => secondList.Contains(x)) && secondList.All(x => firstList.Contains(x));
|
Оба этих метода возвращают true, если все элементы в обоих списках совпадают, и false в противном случае.
@quinton.prosacco
Также можно использовать методы Intersect и Except для сравнения списков:
1 2 3 4 |
List<int> firstList = new List<int> { 1, 2, 3, 4, 5 };
List<int> secondList = new List<int> { 1, 2, 3, 4, 5 };
bool listsAreEqual = !firstList.Except(secondList).Any() && !secondList.Except(firstList).Any();
|
Метод Intersect возвращает пересечение элементов двух списков, а метод Except возвращает разницу между элементами первого и второго списка. В данном случае, если разность между списками пуста и не содержит никаких элементов, то списки считаются равными.