请考虑以下代码:
static void Main(string[] args)
{
List<string> items = new List<string>();
string result = null;
if(items.All(o => o == "ABC"))
{
result = "All";
}
else if(items.Any(o => o == "XYZ"))
{
result = "Any";
}
Console.WriteLine(result);
Console.Read();
}
打印“全部”。
为什么空列表满足o == "ABC"
答案 0 :(得分:6)
根据MSDN: -
如果源序列的每个元素都通过,则返回 true 在指定的谓词中测试,如果序列为空则 ; 否则,错误。
因此,在您的情况下,items
是一个空集合,它返回true。
答案 1 :(得分:4)
这是by design,也与universal quantifier ∀在数学集合中的工作方式一致。