Сортировка не материализованных данных через LINQ с определенной логикой

Есть статусы в enum - 1, 2, 3, 4, 5. В БД есть записи, которые имеют эти статусы. Нужно выбрать все эти записи, но отсортировать определенным образом - сначала должны идти записи со статусом 2, далее со статусом 4, далее со статусом 3 и потом все остальные.


Ответы (1 шт):

Автор решения: Popee

Решение было найден:

    .OrderBy(x => (int)x.Status == 5 ? 1
                  (int)x.Status == 4 ? 2
                  (int)x.Status == 1 ? 3
                  (int)x.Status == 2 ? 4
                  (int)x.Status == 3 ? 5 : 6);

Или:

    .OrderBy(x => x.Status == MyEnum.StatusFive ? 1
                  x.Status == MyEnum.StatusFour ? 2
                  x.Status == MyEnum.StatusOne ? 3
                  x.Status == MyEnum.StatusTwo ? 4
                  x.Status == MyEnum.StatusThree ? 5 : 6);
→ Ссылка