Il y a une autre méthode pour cela, OrderByDescending
Un peu d'un surpuissant, probablement, mais si vous voulez vraiment être en mesure de passer un paramètre indiquant l'ordre de tri, vous pouvez créer une méthode d'extension:
public static IOrderedEnumerable<TResult> OrderBy<TResult,TKey>(this IEnumerable<TResult> source, Func<TResult, TKey> keySelector, bool ascending)
{
Func<Func<TResult, TKey>, IOrderedEnumerable<TResult>> orderMethod = source.OrderBy;
if(!ascending)
orderMethod = source.OrderByDescending;
return orderMethod.Invoke(keySelector);
}
de cette façon, vous seriez en mesure de le faire
bool ascending = true;
list.OrderBy(item => item.Name, ascending);