Linq。对于空集合

时间:2015-12-01 09:41:17

标签: c# linq

请考虑以下代码:

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"

的“全部”条件

2 个答案:

答案 0 :(得分:6)

根据MSDN: -

Enumerable.All

  

如果源序列的每个元素都通过,则返回 true   在指定的谓词中测试,如果序列为空则 ;   否则,错误。

因此,在您的情况下,items是一个空集合,它返回true。

答案 1 :(得分:4)

这是by design,也与universal quantifier ∀在数学集合中的工作方式一致。