C#OrderBy最后留下特定元素

时间:2017-03-25 21:38:56

标签: c# linq

所以我有一个电影的示例列表,我想通过那些示例类型来排序它们(类型是字符串类型):

Action
Romence
Thriller
Other
Drama

现在我想订购这些元素,它会留下Other作为最后一个。

IEnumerable<Movie> oMovies = movies.OrderBy(o => o.Genre); // need to have Other as last

是否可以这样做?

解决方案

由于Genres是String,因此该解决方案完美运行(归功于@PetSerAl)

movies.OrderBy(o => o.Genre == "Other").ThenBy(o => o.Genre)

1 个答案:

答案 0 :(得分:0)

具有订单值的流派:

Action 1
Romence 2
Thriller 3
Other 5
Drama 4

然后很容易订购:

IEnumerable<Movie> oMovies = movies.OrderBy(o => o.Genre.Order);

请注意,只有当Genre是复杂类型时,这才有效,如果它是Enum,则有其他解决方案