You can work with sorting using the method List<T>.Sort(IComparer <T>)
(documentation on MSDN) implementing the interface IComparer
(documentation on MSDN) in the classes of objects you want to sort. See how:
In the class of objects
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 make the ordination
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);
How would it be to sort a complex object, such as Category?
– Iago Frota
Alphabetically? Numerically speaking? Please place an answer here with your attempt to use this model on your object and a simple object model for me to see. It can be a link to a github gist as well...
– Alexandre Marcondes