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;