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();
}
Run Code Online (Sandbox Code Playgroud)
反过来不起作用:
Error 3 Cannot implicitly convert type 'void' to 'System.Collections.Generic.List<Lite.CategoryNavItem>'
任何想法为什么会这样?
Mar*_*ell 136
尝试:
NavItems.Reverse();
return NavItems;
Run Code Online (Sandbox Code Playgroud)
List<T>.Reverse()是一个就地逆转; 它不会返回新列表.
这确实对比LINQ,其中Reverse() 返回所述相反的顺序,但是,当存在合适的非扩展方法时总是优先选择的扩展方法.另外,在LINQ案例中,它必须是:
return someSequence.Reverse().ToList();
Run Code Online (Sandbox Code Playgroud)
Maf*_*osh 94
一个解决方法是 Return NavItems.AsEnumerable().Reverse();
Reverse()不返回反转列表本身,它修改原始列表.所以重写如下:
return NavItems.Reverse();
Run Code Online (Sandbox Code Playgroud)
至
NavItems.Reverse();
return NavItems;
Run Code Online (Sandbox Code Playgroud)
Reverse() 不会按预期函数返回List.
NavItems.Reverse();
return NavItems;Run Code Online (Sandbox Code Playgroud)