c#列表只包含

本文关键字:包含 列表 | 更新日期: 2023-09-27 18:18:24

我想知道是否有一种简单的方法来检查列表是否只包含某些列表值

例如,如果我有一个int列表,它可以随机包含不同的int 1-10(即1,3,7或2,3,4,6,8,9),我想检查列表是否只包含int 1和/或5。1或5或1,5将返回真值,其他值将返回假值。

这实际上是一个MVC项目,是一个字符串列表。根据条件,我建立了一个字符串列表,并想检查是否有一个或两个特定字符串,但列表中没有其他字符串。

现在我取列表并检查它是否包含两个字符串中的每一个,如果它们存在则删除它们。然后我可以计算列表,如果> 0,我知道1或两个字符串不是列表中唯一的值。这让人感觉很粗鲁,我想应该有更好的方法。此外,在将来,如果我的两个字符串是另一个动态字符串列表,那么有一个简单的方法将会很好,而不是在我可以计数列表以获得我需要的bool值之前,必须对两个列表中的每个字符串进行遍历,以从一个列表中删除它们。

希望有类似于。contains (T Item)的东西,如。onlycontains (T Item或IEnumerable),但尚未找到类似的东西。

谢谢。

c#列表只包含

if (someList.Except(desiredItems).Any())
    // Uh oh

如果我正确理解了这个问题,你想知道一个集合是否包含另一个集合中的任何项目。使用Enumerable.Intersect:

var ints1 = new[] { 1, 3, 7 };
var ints2 = new [] { 2, 3, 4, 6, 8, 9 };
var list = new[] { 1, 5 };
bool containsAny = ints1.Intersect(list).Any();
Console.WriteLine(containsAny);    // True
containsAny = ints2.Intersect(list).Any();
Console.WriteLine(containsAny);    // False

也包括这个要求

包含1、5的列表或不包含元素的列表也将返回true。

检查集合是否包含任何元素:

bool any = list.Any();