Abaixo explico com um exemplo simples e pratico como fazer uma ordenação (sort) em uma list<> de objetos usando c#.
Crie uma classe que usará a Interface IComparer, conforme código abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public class ResumoVendedorSorting : IComparer<ResumoVendedor> { public enum SortType { VendedorASC, TotalVendasASC, VendedorDESC, TotalVendasDESC } private SortType _sortType; public ResumoVendedorSorting(SortType sortType) { this._sortType = sortType; } public int Compare(ResumoVendedor x, ResumoVendedor y) { switch (this._sortType) { case SortType.VendedorASC: return x.Vendedor.CompareTo(y.Vendedor); case SortType.TotalVendasASC: return x.TotalVendas.CompareTo(y.TotalVendas); case SortType.VendedorDESC: return y.Vendedor.CompareTo(x.Vendedor); case SortType.TotalVendasDESC: return y.TotalVendas.CompareTo(y.TotalVendas); } return 0; } } |
Para usar essa classe na sua lista de objetos é só fazer o seguinte:
1 | sualista.Sort(new ResumoVendedorSorting(ResumoVendedorSorting.SortType.TotalVendasDESC)); |