Sorting List<> em Asp.Net

oraculum

Tagged: , , , ,


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));
Share Button

Leave a Reply