Можно ли превратить IEnumerable в IOrderedEnumerable без использования OrderBy?
Скажем, есть метод расширения для заказа IQueryable, основанный на нескольких типах сортировки (то есть сортировка по различным свойствам), обозначенныхSortMethod
ENUM.
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
упорядоченности.