Скажем, что существует метод расширения для заказа IQueryable на основе нескольких типов сортировки (т.е. сортировки по различным свойствам), обозначенных перечислением SortMethod
.
public static IOrderedEnumerable<AClass> OrderByX(this IQueryable<AClass> values,
SortMethod? sortMethod)
{
IOrderedEnumerable<AClass> queryRes = null;
switch (sortMethod)
{
case SortMethod.Method1:
queryRes = values.OrderBy(a => a.Property1);
break;
case SortMethod.Method2:
queryRes = values.OrderBy(a => a.Property2);
break;
case null:
queryRes = values.OrderBy(a => a.DefaultProperty);
break;
default:
queryRes = values.OrderBy(a => a.DefaultProperty);
break;
}
return queryRes;
}
В случае, когда SortMethod
является null
(т.е. там, где указано, что меня не интересует порядок значений), существует ли способ вместо упорядочения с помощью некоторого свойства по умолчанию, вместо этого просто передать значения IEnumerator
через "упорядоченные" без необходимости выполнять фактический сортировку?
Мне нужна возможность вызвать это расширение, а затем, возможно, выполнить некоторые дополнительные ThenBy
упорядочения.