繁体   English   中英

检查列表是否包含另一个列表的所有内容

[英]Checking if a list has all the contents of another

假设我有一个名为List<int> List1 = new() {1,2,3,4}List<int> List2 = new() {2,3,4}的整数列表。

我需要检查 List2 是否包含 List1 的所有内容。 请记住,列表长度可能会有所不同。

我不知道怎么做。 在 inte.net 上搜索并没有真正帮助。

我建议您对第一组值使用 HashSet 并迭代第二组值以检查创建的 HashSet 中是否存在迭代器值:

var set = new HashSet<int>(list1);
var result = list2.All(item => set.Contains(item));

如果你不想使用 HashSet,你可以用 LINQ 做同样的事情,但性能更差:

var result = list2.All(il2 => list1.Any(il1 => il1 == il2));

要么

var result = !list2.Except(list1).Any();

这是简单的代码,因此您需要检查ls2是否是ls1的子集。

bool isSubset = !ls2.Except(ls1).Any();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM