Вопрос:

C # OrderBy оставить определенный элемент последним

c# linq

69 просмотра

1 ответ

161 Репутация автора

Итак, у меня есть пример списка фильмов, и я хочу упорядочить их по тем образцам жанров (жанры строкового типа):

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)
Автор: Taurib Источник Размещён: 25.03.2017 09:38

Ответы (1)


0 плюса

514 Репутация автора

Есть жанр со стоимостью заказа:

Action 1
Romence 2
Thriller 3
Other 5
Drama 4

Тогда легко заказать:

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

Обратите внимание, что это будет работать только в том случае, если Жанр является сложным типом, если это Enum, есть другое решение.

Автор: Chester Cobus Размещён: 25.03.2017 09:51
Вопросы из категории :
32x32