c#试图颠倒一个列表

public class CategoryNavItem { public int ID { get; set; } public string Name { get; set; } public string Icon { get; set; } public CategoryNavItem(int CatID, string CatName, string CatIcon) { ID = CatID; Name = CatName; Icon = CatIcon; } } public static List<Lite.CategoryNavItem> getMenuNav(int CatID) { List<Lite.CategoryNavItem> NavItems = new List<Lite.CategoryNavItem>(); -- Snipped code -- return NavItems.Reverse(); } 

反过来不起作用:

Error 3 Cannot implicitly convert type 'void' to 'System.Collections.Generic.List<Lite.CategoryNavItem>'

任何想法,为什么这可能是?

尝试:

 NavItems.Reverse(); return NavItems; 

List<T>.Reverse()是一个原地反转; 它不会返回一个新的列表。

这与LINQ相反,其中Reverse() 返回反向序列,但是当有合适的非扩展方法时, 总是优先select扩展方法。 另外,在LINQ的情况下,它必须是:

 return someSequence.Reverse().ToList(); 

一个解决方法是Return NavItems.AsEnumerable().Reverse();

。列表上的反转.Reverse()反转列表中的项目,它不会返回一个新的反转列表。

Reverse()不返回反转列表本身,它修改原始列表。 所以重写如下:

 return NavItems.Reverse(); 

 NavItems.Reverse(); return NavItems; 

Reverse()不会像函数期望的那样返回一个List。

 NavItems.Reverse(); return NavItems; 

.Reverse反过来反转“就地”…,试试

 NavItems.Reverse(); return NavItems;