@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 возвращает разницу между элементами первого и второго списка. В данном случае, если разность между списками пуста и не содержит никаких элементов, то списки считаются равными.