title: Why does Enumerable.All return true for an empty sequence?
body: <pre><code>var strs = new Collection&lt;string&gt;();
  bool b = strs.All(str =&gt; str == "ABC");
  </code></pre>
  
  <p>The code creates an empty collection of string, then tries to determine if all the elements in the collection are "ABC".
  If you run it, <code>b</code> will be true.</p>
  
  <p>But the collection does not even have any elements in it, let alone any elements that equal to "ABC".</p>
  
  <p>Is this a bug, or is there a reasonable explanation?</p>