Czy jest możliwe przekształcenie IEnumerable w IOrderedEnumerable bez użycia OrderBy?
Powiedzmy, że istnieje metoda rozszerzenia, aby zamówić IQueryable na podstawie kilku rodzajów sortowania (tj. Sortowania według różnych właściwości) wyznaczonych przezSortMethod
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;
}
W przypadku gdziesortMethod
jestnull
(tj. gdzie określono, że nie obchodzi mnie kolejność wartości), czy istnieje sposób, zamiast zamawiania przez jakąś domyślną właściwość, zamiast tego przekazaćIEnumerator
wartości poprzez „zamówione” bez konieczności wykonywania rzeczywistego sortowania?
Chciałbym móc wywołać to rozszerzenie, a następnie wykonać dodatkoweThenBy
zamówienia.