Ordenar una lista en C# usando List.Sort(Comparación<T> comparación

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.