var strs = new Collection<string>();
bool b = strs.All(str => str == "ABC");
代码创建一个空字符串集合,然后try 确定集合中的所有元素是否都是"ABC".
但是集合中甚至没有任何元素,更不用说等于"abc"的任何元素了.
这是一个错误,还是有合理的解释?
var strs = new Collection<string>();
bool b = strs.All(str => str == "ABC");
代码创建一个空字符串集合,然后try 确定集合中的所有元素是否都是"ABC".
但是集合中甚至没有任何元素,更不用说等于"abc"的任何元素了.
这是一个错误,还是有合理的解释?
这当然不是一个虫子.它的表现恰好是as documented:
如果源序列的每个元素都通过了指定谓词中的测试,则为or if the sequence is empty;否则就错了.
现在您可以争论它should是否以这种方式工作(对我来说似乎很好;序列的每个元素都符合谓词),但是在您询问某事是否为bug之前的very first thing to check是文档.(一旦方法的行为与您预期的不同,首先要判断它.)