Bass said:
Frank Hileman said:
*snip*

IEnumerable is specific kind of iterator, a forward iterator. Forward iterators have linear complexity for searching. Hence why Linq to Objects has linear complexity.

Some Linq to Objects operators do check for whether an IEnumerable happens to also be an IList, giving random-access.