sort orderby ordenar descending array arrange c# .net asp.net generics sorting

c# - orderby - ¿Cómo ordenar Genérico Lista Asc o Desc?



order by list string c# (2)

Tengo una colección genérica de tipo MyImageClass, y MyImageClass tiene una propiedad booleana "IsProfile". Quiero ordenar esta lista genérica que IsProfile == true se encuentra al comienzo de la lista.

He intentado esto.

rptBigImages.DataSource = estate.Images.OrderBy(est=>est.IsProfile).ToList();

con el código de arriba, la imagen se encuentra en la última propiedad IsProfile que es verdadera. Pero quiero que esté en el primer índice. Necesito algo Asc o Desc . Entonces hice esto.

rptBigImages.DataSource = estate.Images.OrderBy(est=>est.IsProfile).Reverse.ToList();

¿Hay alguna manera más fácil de hacer esto?

Gracias


Puede usar .OrderByDescending (...), pero tenga en cuenta que con los métodos LINQ está creando una nueva lista ordenada, no ordenando la lista existente.

Si tiene una List<T> y desea volver a ordenar la lista existente , puede usar Sort() y puede hacerlo más fácil agregando algunos métodos de extensión:

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))); }

Luego puede usar list.Sort(x=>x.SomeProperty) y list.SortDescending(x=>x.SomeProperty) .


Qué tal si:

estate.Images.OrderByDescending(est => est.IsProfile).ToList()

Esto pedirá las imágenes en orden descendente por la propiedad IsProfile y luego creará una nueva lista a partir del resultado.