Ordenar una lista en C# usando List.Sort(Comparación<T> comparación
Puedes escribir una expresión lambda comparando dos objetos como este:
sm.Sort((x,y)=>x.num_of_words.CompareTo(y.num_of_words));
puede invertir la ordenación agregando -
sm.Sort((x,y)=>-x.num_of_words.CompareTo(y.num_of_words));
Puede usar el método Linq OrderBy para eso -
sm = sm.OrderBy(i => i.num_of_words).ToList();
Hay un ejemplo de uso en la documentación oficial de Microsoft. El ejemplo utiliza cadenas. Reemplazar con int
para su uso.
private static int CompareDinosByLength(string x, string y)
{
...
}
List<string> dinosaurs = new List<string>();
dinosaurs.Add("Pachycephalosaurus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("");
dinosaurs.Add(null);
dinosaurs.Add("Mamenchisaurus");
dinosaurs.Add("Deinonychus");
dinosaurs.Sort(CompareDinosByLength);
Un poco de google ayuda mucho.