Сравнить все предметы из коллекции с предметами из другой коллекции? - PullRequest
2 голосов
/ 28 июля 2010

Эй, у меня есть этот код:

ArrayList arrayList = new ArrayList();
arrayList.add("one");
arrayList.add("two");
arrayList.add("three");

List<DataRow> dataList = GetDataList(some params);

Теперь я хочу проверить, содержит ли arrayList элементы из dataList.Строка находится в itemarray [0] в dataList.Есть хорошая короткая версия для этого?

Спасибо: -)

1 Ответ

4 голосов
/ 28 июля 2010

В .NET 3.5, чтобы проверить, содержатся ли все элементы из одного списка в другом списке:

bool result = list.All(x => dataList.Contains(x));

Или вы можете сделать это, используя комбинацию За исключением и Любой :

bool result = !list.Except(dataList).Any();

В вашем примере вы используете ArrayList. Вы должны изменить это значение на List<object> или List<string>, чтобы использовать эти методы. В противном случае вы можете написать arrayList.Cast<object>().

bool result = arrayList.Cast<object>().All(x => dataList.Contains(x));
...