Мне очень нравится Last(), и я бы постоянно использовал его для List. Но поскольку он, похоже, определен для IEnumerable, я думаю, он сначала перечисляет перечисление. Это должно быть O(n), в отличие от O(1) для прямой индексации последнего элемента List.
Знают ли об этом стандартные методы расширения (LINQ)?
STL в C++ знает об этом благодаря целому «дереву наследования» для итераторов и многого другого.
Подробнее здесь: https://stackoverflow.com/questions/137 ... -for-listt