El camino de obj.Sort (delegate (...)); es una clasificación dinámica en un solo lugar. Si tiene varios lugares haciendo la misma clasificación o necesita una clasificación más flexible, puede considerar crear una clase que implemente IComparer <T>. He aquí un ejemplo:
public class MyTypeComparer : IComparer<MyType>
{
public MyTypeComparer() // default comparer on ID
{ ... }
public MyTypeComparer(bool desc) // default with order specified
public MyTypeComparer(string sort, bool desc) // specified sort and order such as property name, true or false.
{ ... }
public int Compare(MyType a, MyType b) // implement IComparer interface
{ ... } // this is real sorting codes
}
y aquí está el ejemplo de usarlo:
List<MyType> myList = GetList();
myList.Sort(new MyTypeComparer());
// myList.Sort(new MyTypeComparer(false));
// myList.Sort(new MyTypeComparer("FirstName", true));
En Lambda, que va a ser: ' myList.Sort ((t1, t2) => t1. ID.CompareTo (t2.ID)); ' – Jaider