【发布时间】:2011-12-14 15:42:17
【问题描述】:
var strs = new Collection<string>();
bool b = strs.All(str => str == "ABC");
代码创建一个空字符串集合,然后尝试确定集合中的所有元素是否都是“ABC”。
如果你运行它,b 将是真的。
但是该集合中甚至没有任何元素,更不用说任何等于“ABC”的元素了。
这是一个错误,还是有合理的解释?
【问题讨论】:
-
对我来说听起来很合理。结合使用
Any()方法返回false。 -
这是一个有趣的数理逻辑问题。您可能想考虑相关问题“空整数序列的总和是多少?” (这似乎很明显)和“整数的整数序列的 product 是什么?” (较少)。
-
任何关于无所事事的说法总是正确的。如果一个孩子的盘子里从来没有蔬菜,然后说“我把所有的蔬菜都吃光了”,这将是一个真实的陈述,即使他一个都没吃。另一种说法是“在我盘子里的所有蔬菜中,我吃了它们。”这是一个真实的陈述,因为它是一个没有任何实际主张的空洞陈述,因为它适用于任何事物。 “对于我盘子里的每一种蔬菜,我都做了一个跳跃式千斤顶。”这并没有断言你做了任何跳跃式千斤顶,它断言“对于每种蔬菜”你做了一个跳跃式千斤顶。所以如果没有蔬菜...
-
有趣的是,这个问题的赞成票数是已接受答案的两倍,赞成票数是已接受答案的 3 倍,并且围绕它进行了更多讨论。这表明问题的这种表现形式最终比它重复的表现形式具有更大的价值,这表明封闭式问题仅对特权用户可见的政策存在缺陷。
标签: c# .net linq enumerable