Производительность Skip (и аналогичные функции, как Take)
Я только что посмотрел на исходный код /Skip
Take
методы расширения .NET Framework (наIEnumerable
типа) и обнаружил, что внутренняя реализация работает сGetEnumerator
метод:
// .NET framework
public static IEnumerable Skip(this IEnumerable source, int count)
{
if (source == null) throw Error.ArgumentNull("source");
return SkipIterator(source, count);
}
static IEnumerable SkipIterator(IEnumerable source, int count)
{
using (IEnumerator e = source.GetEnumerator())
{
while (count > 0 && e.MoveNext()) count--;
if (count