![](/img/trans.png)
[英]Checking if a list's item has a property contained in another list of items
[英]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.