如何检查一个c#list是否只包含给定的值?

时间:2015-04-03 17:01:11

标签: .net list c#-4.0

我想检查给定值的列表,列表应该只包含给定的值。比如说

List<string> alltypes = new List<string>();

我想检查'alltypes'以获取类似'sedan'的值,如果这是列表alltypes中的唯一元素,则返回true

感谢任何帮助..谢谢你

2 个答案:

答案 0 :(得分:2)

取决于您是否应该只有一个值

var result = alltypes.Length == 1 && alltypes[0] == "sedan"

或者如果你说的是列表中的所有值(可能有很多)

var result = alltypes.Length > 0  && alltypes.All(a => a == "sedan")

小心All,因为如果列表为空,它将返回true:

  

如果源序列的每个元素都通过了测试,则为true   指定的谓词,或者序列是否为空;否则,错误。

答案 1 :(得分:1)

使用Linq All query - 如果列表的所有成员都与输入查询

匹配,则返回true
var result = alltypes.Count > 0 && alltypes.All(a => a == "sedan")
如果list只包含“sedan”字符串

,则

结果为true