Компилятор выбирает метод List<T>.Reverse()
вместо метода расширения Linq Enumerable.Reverse<T>(this IEnumerable<T>)
.
Поскольку List<T>.Reverse()
изменяет список путем изменения элементов в месте, а не возвращает новый список, вы можете просто назвать это как отдельный шаг:
List<Entities.Notification> ProgramList = EventData.ToList();
ProgramList.Reverse();
ListViewEvents.DataSource = ProgramList;
ListViewEvents.DataBind();
или
List<Entities.Notification> ProgramList = EventData.ToList().Reverse();
ListViewEvents.DataSource = ProgramList;
ListViewEvents.DataBind();
или вы можете позвонить по телефону AsEnumerable()
вместо ToList()
вместо этого:
List<Entities.Notification> ProgramList = EventData.AsEnumerable();
ListViewEvents.DataSource = ProgramList.Reverse(); // returns a new IEnumerable
ListViewEvents.DataBind();
В качестве примечания стороны метод расширения может работать лучше, чем List<T>.Reverse
, поскольку он возвращает итератор, который перемещает список в обратном порядке, а не физически меняет порядок элементов в списке.
Если вы хотите наиболее эффективный способ, добавьте его в стек, а затем снимите его. Первый элемент в стеке является последним. –