首页 > 解决方案 > "".All(char.IsNumber) 返回 True

问题描述

为什么"".All(char.IsNumber)返回true?根据方法总结,All()方法:

确定序列的所有元素是否满足条件。

这似乎不太准确,因为序列中没有任何元素满足条件,因为没有元素开始。

标签: c#linq

解决方案


以这种方式记录 - MSDN,在退货部分(正如 Loocid 在评论中指出的那样):

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

之所以定义它这样做的原因是因为空序列上 All 的语义定义最终源自数学逻辑,其中 for-all 量词在空集上以这种方式工作。这在数学 SE 上的这个问题的答案中得到了解释:如果 SET 为空,为什么谓词“all” as in all(SET) 为真?


推荐阅读