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() 返回相反的序列,但是当有合适的非扩展方法时,它是 总是 优先选择扩展方法。另外,在 LINQ 的情况下,它必须是:
return someSequence.Reverse().ToList();

关于c# 尝试反转列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6980608/

10-13 06:12