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.

questionAnswers(3)

yourAnswerToTheQuestion