为什么"".All(char.IsNumber)
返回true
?
根据方法摘要,All()
方法:
确定序列中的所有元素是否都满足条件。
这似乎不是很准确,因为序列中的任何元素都不满足条件,原因是没有任何元素开头。
答案 0 :(得分:5)
以这种方式记录-MSDN, in the Returns section(如Loocid在评论中指出的那样):
true
,如果源序列的每个元素都通过指定谓词中的测试,或者序列为空;否则为false
。
之所以被定义为执行此操作,是因为对空序列上All的语义的这种定义最终源自数学逻辑,其中for-all量词以这种方式在空集合上起作用。在关于数学SE的以下问题的答案中对此进行了解释:Why is predicate “all” as in all(SET) true if the SET is empty?