将Collection中的所有项目与另一个Collection中的项目进行比较?

时间:2010-07-28 06:53:45

标签: c# collections list

嘿,我这里有这段代码:

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

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

现在我想检查arrayList是否包含来自dataList的其他元素。该字符串位于dataList中的itemarray [0]。有没有一个很好的短代码版本呢?

谢谢: - )

1 个答案:

答案 0 :(得分:4)

在.NET 3.5中检查一个列表中的所有元素是否都包含在另一个列表中:

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

或者您可以使用ExceptAny

的组合来实现
bool result = !list.Except(dataList).Any();

在您的示例中,您使用的是ArrayList。您应将其更改为List<object>List<string>以使用这些方法。否则你可以写arrayList.Cast<object>()

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