Почему есть две совершенно разные версии Reverse для List и IEnumerable?

ДляList объект, у нас есть метод с именемЗадний ход().

Это обратный порядок списка "на месте'это неничего не вернуть.

ДляIEnumerable объект, у нас есть метод расширения под названиемЗадний ход().

Это возвращает другой IEnumerable.

Мне нужно перебрать список в обратном порядке, чтобы я могнапрямую использовать второй метод, потому что я получаю список, и я неЯ не хочу перевернуть это, просто итерация назад.

Так что я могу сделать это:

for(int i = list.Count - 1; i >=0; i--)

Или же

foreach(var item in list.AsEnumerable().Reverse())

Я нашел его менее читабельным, чем если бы у меня был IEnumerable, просто сделайте

foreach(var item in list.Reverse())

Я могу'Я не понимаю, почему эти 2 метода были реализованы таким образом, с тем же именем. Это довольно раздражает и сбивает с толку.

Почему вместо Reverse () нет расширения BackwardsIterator (), работающего для всех IEnumerable?

Меня очень интересует историческая причина этого выбора, более чемкак это сделать' материал!

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

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