【发布时间】:2019-04-27 18:05:56
【问题描述】:
为什么"".All(char.IsNumber) 返回true?
根据方法总结,All()方法:
判断一个序列的所有元素是否满足一个条件。
这似乎不太准确,因为序列中没有任何元素满足条件,因为没有元素开始。
【问题讨论】:
-
只是in case,here is an MCVE。
-
MSDN, in the Returns section. "如果源序列的每个元素都通过指定谓词中的测试,或者序列为空,则为真;"你的枚举是空的,所以它返回
true。 -
我的错是只阅读摘要。谢谢@Loocid
-
All在空序列上的语义定义最终源自数学逻辑,其中 for-all 量词在空集上以这种方式工作。这在数学 SE 上这个问题的答案中得到了解释:Why is predicate “all” as in all(SET) true if the SET is empty?