c# - 将一个集合中的所有项目与另一个集合中的项目进行比较?

标签 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] 处。有一个不错的短代码版本可以做到这一点吗?

谢谢:-)

最佳答案

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

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

或者您可以使用 Except 的组合来完成此操作和 Any :

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

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

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

关于c# - 将一个集合中的所有项目与另一个集合中的项目进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3350530/

相关文章:

c# - 我们是否使类的对象具有私有(private)构造函数?

c# - 使用小数据类型(例如 short 而不是 int)是否会减少内存使用量?

java - Java 中集合的并集和交集(生成拓扑)

python - 如何在 Python 中创建列表?

javascript - 如何从 MVC 中的 Controller 下载由 html2canvas 创建的字节形式的图像(在浏览器中显示保存对话框)?

c# - StatusBar 消息实现超时

java - 按索引从 Collection 中获取值(value)的最佳方式

.net - 将 IEnumerable 转换为列表

c# - 使用 LINQ 更新通用列表 <T>

Python numpy 参数排序