颠倒列表c#

颠倒列表c#,c#,asp.net,C#,Asp.net,我已经将EventData EntityList插入到普通列表中,现在我想将其反转。 但它给出了错误“无法将类型'void'隐式转换为'object'” List ProgramList=EventData.ToList(); ListViewEvents.DataSource=ProgramList.Reverse(); ListViewEvents.DataBind(); 我如何扭转这个列表?也可以直接反转EntityList吗?反转方法不会返回新的列表。调用它,然后设置数据源 List&

我已经将EventData EntityList插入到普通列表中,现在我想将其反转。 但它给出了错误“无法将类型'void'隐式转换为'object'”

List ProgramList=EventData.ToList();
ListViewEvents.DataSource=ProgramList.Reverse();
ListViewEvents.DataBind();

我如何扭转这个列表?也可以直接反转EntityList吗?

反转方法不会返回新的
列表。调用它,然后设置数据源

List<Entities.Notification> ProgramList = EventData.ToList();
ProgramList.Reverse();
ListViewEvents.DataSource = ProgramList;
ListViewEvents.DataBind();
List ProgramList=EventData.ToList();
ProgramList.Reverse();
ListViewEvents.DataSource=ProgramList;
ListViewEvents.DataBind();

反向执行到位的反向操作,不返回任何内容。相反,你应该:

List<Entities.Notification> ProgramList = EventData.ToList();
ProgramList.Reverse();
ListViewEvents.DataSource = ProgramList;
ListViewEvents.DataBind();
List ProgramList=EventData.ToList();
ProgramList.Reverse();
ListViewEvents.DataSource=ProgramList;
ListViewEvents.DataBind();

编译器正在选择方法
List.Reverse()
而不是Linq扩展方法
Enumerable.Reverse(此IEnumerable)

由于
List.Reverse()
通过反转元素而不是返回新列表来修改列表,因此您可以将其作为单独的步骤调用:

List<Entities.Notification> ProgramList = EventData.ToList();
ProgramList.Reverse();
ListViewEvents.DataSource = ProgramList;
ListViewEvents.DataBind();

作为旁注,扩展方法可能比List.Reverse执行得更好,因为它返回的迭代器以相反的顺序遍历列表,而不是物理上颠倒列表中项目的顺序。

您的代码不正确
ListView.DataBind
不返回任何内容。@Romoku,你是对的,我没有充分阅读代码。这可能是对原始问题的注释,而不是答案。您是对的,但它还不够完整,不足以成为一个答案。@Maurice Reeves-更新以获得更完整的答案。如果您想要最有效的方法,请将其添加到堆栈中,然后将其取下。堆栈上的第一项是最后一项。
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();
List<Entities.Notification> ProgramList = EventData.AsEnumerable();
ListViewEvents.DataSource = ProgramList.Reverse(); // returns a new IEnumerable
ListViewEvents.DataBind();