title: Does Linq Contains() check for HashSet?
body: <p>Sometimes a HashSet is exposed through a property as an IEnumerable.</p>
  
  <p>It is well known that for <code>enumerable.Count()</code> the code checks if it is a collection, so it doesn't enumerate the whole list, but takes a shortcut. </p>
  
  <p>Is there any similar check for using the Linq version of <code>enumerable.Contains(x)</code> and HashSets?</p>