Linq OrderBy, учитывая несколько столбцов, приоритетный порядок и направление сортировки

У меня есть IEnumerable для спецификации порядка множественной сортировки, где:

public class Specification
{
    public string Column { get; set; }
    public OrderByDirection Direction { get; set; }
    public int Priority { get; set; }
}   

Тогда у меня есть еще один IQueryable что я хотел бы лениво отсортировать на основе данных IEnumerable с уважением направления и приоритета. Каков наилучший подход для этого? Есть ли какие-нибудь библиотеки, которые в настоящее время делают это? Может кто-нибудь объяснить, как к этому можно подходить с помощью динамических запросов (деревьев выражений)?

Примечание. Предположим, что указанный столбец существует в IQueryable,

1 ответ

Используя Linq; Я хотел бы создать списки на основе их приоритета, а затем сортировать их так, как вы хотите позже, чтобы добавить их все в один список.

List l = [ArrayObject/List].OrderBy(o => o.Priority == (int)p);

  • используйте struct вместо классов и не используйте get; задавать; это значительно улучшит производительность, если вам это не нужно.
Другие вопросы по тегам