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; задавать; это значительно улучшит производительность, если вам это не нужно.