Вы должны различать работу, которую выполняют методы Skip
и Take
, и работу по использованию данных, возвращаемых методами.
Сами методы Skip
и Take
являются операциями O (1), так как выполняемая ими работа не масштабируется с размером ввода. Они просто устанавливают перечислитель, способный возвращать элементы из массива.
Это когда вы используете перечислитель, что работа сделана. Это операция O (n), где n - количество элементов, которые производит перечислитель. Поскольку счетчики читают из массива, они не содержат копии данных, и вы должны сохранять данные в массиве без изменений, пока вы используете перечислитель.
(Если вы используете Skip
в коллекции, которая не доступна по индексу, например массиву, получение первого элемента является операцией O (n), где n - количество пропущенных элементов.)