Производительность Skip (и аналогичные функции, как Take)

Я только что посмотрел на исходный код /SkipTake методы расширения .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 

Ответы на вопрос(3)

Ваш ответ на вопрос