Вы можете использовать .OrderByDescending (...) - но учтите, что с помощью методов LINQ вы создаете новый упорядоченный список, а не упорядочиваете существующий список.
Если у вас есть List<T>
и вы хотите переупорядочить существующий список , тогда вы можете использовать Sort()
- и вы можете упростить его, добавив несколько методов расширения:
static void Sort<TSource, TValue>(this List<TSource> source,
Func<TSource, TValue> selector) {
var comparer = Comparer<TValue>.Default;
source.Sort((x,y)=>comparer.Compare(selector(x),selector(y)));
}
static void SortDescending<TSource, TValue>(this List<TSource> source,
Func<TSource, TValue> selector) {
var comparer = Comparer<TValue>.Default;
source.Sort((x,y)=>comparer.Compare(selector(y),selector(x)));
}
Тогда вы можете использовать list.Sort(x=>x.SomeProperty)
и list.SortDescending(x=>x.SomeProperty)
.