var strs = new Collection(); bool b = strs.All(str => str == “ABC”);
该代码创建一个空的字符串集合,然后尝试确定集合中的所有元素是否均为“ ABC”。如果您运行它,b将是真实的。
b
但是集合中甚至没有任何元素,更不用说任何等于“ ABC”的元素了。
这是错误,还是有合理的解释?
当然不是错误。它的行为与记录的完全相同:
如果源序列中的每个元素都通过指定谓词中的测试, 或者序列为空 , 则为 true;否则为true 。否则为假。
现在您可以争论它是否 应该以 这种方式工作(对我来说似乎很好;序列中的每个元素都符合谓词),但是在询问是否存在错误之前 首先要检查的 是文档。(这是检查方法以预期之外的其他方式进行操作时的第一件事。)