В Bash 5.0 появилась новая опция оболочки localvar_inherit
, позволяющая локальным переменным с одинаковым именем наследовать значение переменной с таким же именем в предыдущей области видимости:
[ 110]
со следующим выводом:
Before call: global
In call: global
In call, after setting: local
After call: global
Если у вас нет Bash 5.0, вы должны установить значение в функции, как вы делали в своем вопросе, с тем же результатом.
Как насчет:
estate.Images.OrderByDescending(est => est.IsProfile).ToList()
Это закажет Изображения в порядке убывания Свойством IsProfile и затем создаст новый Список из результата.
Можно использовать.OrderByDescending (...) - но отметить с методами LINQ создание нового заказанного списка, не заказывая существующий список.
Если у Вас есть a 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)
.