LINQ: Проверьте, являются ли Два Списка Тем же

Существуют преимущества для наличия таблиц с меньшим количеством столбцов, но также необходимо посмотреть сценарий выше и ответить на эти вопросы:

клиенту разрешат иметь больше чем 1 адрес? В противном случае тогда отдельная таблица для адреса не необходима. Если так, тогда отдельная таблица становится полезной, потому что можно легко добавить больше адресов по мере необходимости в будущем, где становится более трудным добавить больше столбцов к таблице.

17
задан Graviton 27 October 2009 в 06:13
поделиться

4 ответа

var same = list1.Except(list2).Count() == 0 && 
           list2.Except(list1).Count() == 0;
32
ответ дан 30 November 2019 в 11:17
поделиться

Изменить: Это было написано до того, как OP добавил, что {1, 2, 2} равно {1, 1, 2} (относительно обработки повторяющихся записей).

Это будет работать, пока элементы сопоставимы по порядку.

bool equal = list1.OrderBy(x => x).SequenceEqual(list2.OrderBy(x => x));
6
ответ дан 30 November 2019 в 11:17
поделиться

Если количество элементов списка 1 в списке 2 равно количеству элементов списка 2 в списке 1, то оба списка содержат одинаковое количество элементов, оба являются подмножествами друг друга - другими словами, они оба содержат одинаковые элементы.

if (list1.Count(l => list2.Contains(l)) == list2.Count(l => list1.Contains(l)))
    return true;
else
    return false;
0
ответ дан 30 November 2019 в 11:17
поделиться

You need to get the intersection of the two lists:

bool areIntersected = t1.Intersect(t2).Count() > 0;

In response to you're modified question:

bool areSameIntersection = t1.Except(t2).Count() == 0 && t2.Except(t1).Count() == 0;
1
ответ дан 30 November 2019 в 11:17
поделиться
Другие вопросы по тегам:

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