"".所有(char.IsNumber)返回True

Bac*_*ave 1 c# linq

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

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

这似乎不太准确,因为序列的所有元素都不满足条件,因为没有元素可以开始.

dav*_*bak 5

它的记录方式 - MSDN,在返回部分(如评论中注释的Loocid):

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

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