LINQ OrderBy子句 - 强制某些字符串始终位于顶部

时间:2011-12-20 06:36:19

标签: c# .net linq

我有以下LINQ OrderBy子句:

Menu[] sorted = ret.OrderBy(menu => menu.Title).ToArray();

这很好用,因为菜单按照标题的顺序排序。

但是,如果标题恰好是“收藏夹”,我希望它始终是数组中的第一个元素,无论如何。

最简单的方法是什么?谢谢!

1 个答案:

答案 0 :(得分:13)

我会说:

Menu[] sorted = ret.OrderBy(menu => menu.Title != "Favorites")
                   .ThenBy(menu => menu.Title)
                   .ToArray();