С# Попытка обратить вспять список
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>'
Любые идеи, почему это может быть?
Ответы
Ответ 1
Try:
NavItems.Reverse();
return NavItems;
List<T>.Reverse()
является обратным на месте; он не возвращает новый список.
Это контрастирует с LINQ, где Reverse()
возвращает обратную последовательность, но когда есть подходящий метод без расширения, он выбирается всегда, предпочитая метод расширения. Кроме того, в случае LINQ это должно быть:
return someSequence.Reverse().ToList();
Ответ 2
Обходным решением будет Return NavItems.AsEnumerable().Reverse();
Ответ 3
.Reverse()
в списке меняются позиции в списке, он не возвращает новый перевернутый список.
Ответ 4
Reverse()
не возвращает реверсивный список, он изменяет исходный список. Поэтому перепишите его следующим образом:
return NavItems.Reverse();
К
NavItems.Reverse();
return NavItems;
Ответ 5
Reverse()
не возвращает список, как ожидалось от вашей функции.
NavItems.Reverse();
return NavItems;
Ответ 6
.Reverse
отменяет "на месте"..., попробуйте
NavItems.Reverse();
return NavItems;