Is the LINQ Count()
method any faster or slower than List<>.Count
or Array.Length
?
In general Slower. LINQ's Count in general is an O(N)
operation while List.Count
and Array.Length
are both guaranteed to be O(1)
.
However it some cases LINQ will special case the IEnumerable<T>
parameter by casting to certain interface types such as IList<T>
or ICollection<T>
. It will then use that Count method to do an actual Count()
operation. So it will go back down to O(1)
. But you still pay the minor overhead of the cast and interface call.
The Enumerable.Count()
method checks for ICollection<T>
, using .Count
- so in the case of arrays and lists, it is not much more inefficient (just an extra level of indirection).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With