This is an optimization for enumerated methods that act on indexes (Take / Skip and others) when the collection supports indexes. IIListProvider is bound.
There are several implementations . Find the file for IPartition .
issues about it.
IPartition allows IPartition to delegate higher-level operations to the base collection. For example, new int[10].Skip(1) slow because all data runs through two IEnumerable<int> . When implementing IPartition this effectively turns into for (int i = 1 ... 9) emit(list[i]); . Thus, it does not use intermediate counters and calls a list pointer, which is slightly faster than an enumeration.
This is a very crude description. I recommend that you read the Github discussions and code.
source share