LINQ Сортировать по вопросу - PullRequest
1 голос
/ 14 июля 2011

У меня есть запрос linq, который возвращает список сотрудников и должность.Мне нужно отсортировать его по названию должности, но в списке вывода сначала есть те, у кого нет сотрудников.

Пример отсортирован:
- Список драйверов {0}
- Список операторов {71}
- Список пилотов {19}

Сначала драйвер, потому что в списке ничего нет, а затем он отсортирован по названию.

Мне просто интересно, как вы думаете, чтобыть моим лучшим вариантом для достижения этой цели?

Спасибо

Ответы [ 2 ]

6 голосов
/ 14 июля 2011

Что-то вроде:

var query = employees.OrderBy(x => x.Subordinates.Any() ? 1 : 0)
                     .ThenBy(x => x.JobTitle);

Вы также можете использовать тот факт, что false сортирует раньше, чем true:

var query = employees.OrderBy(x => !x.Subordinates.Any())
                     .ThenBy(x => x.JobTitle);

... но это немного менее очевидно, ИМО.

0 голосов
/ 14 июля 2011

Что-то вроде:

Jobs.OrderBy(j => j.Eployees.Count()).ThenBy(j => j.Name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...