You can work with sorting by using the List<T>.Sort(IComparer <T>)
method (documentation at MSDN ) by implementing the IComparer
interface (documentation on MSDN ) in the object classes you want to sort. Here's how:
In the object class
public class ComparadorDoMeuObjeto: IComparer<MeuObjeto> {
int IComparer.Compare( MeuObjeto x, MeuObjeto y ) {
if(x == null)
return -1;
if(y == null)
return 1;
return x.PropriedadeInterna - y.PropriedadeInterna ;
}
}
See how to implement
+-------------------+--------------------+
| Valor | Significado |
+-------------------+--------------------+
| menor que zero | x é menor do que y |
| zero | x é igual a y |
| maior do que zero | x é maior do que y |
+-------------------+--------------------+
How to sort
List<MeuObjeto> objs= new List<MeuObjeto>();
objs.Add(new MeuObjeto(1));
objs.Add(new MeuObjeto(2));
objs.Add(new MeuObjeto(3));
objs.Add(new MeuObjeto(4));
ComparadorDoMeuObjeto comparador = new ComparadorDoMeuObjeto();
// Com objeto IComparer
objs.Sort(comparador);
// Com Lambda para fazer a mesma coisa (parâmetros do IComparer)
objs.Sort((x, y) => x.PropriedadeInterna - y.PropriedadeInterna);