none
Ordenar um <List> usando o sort.(delegate...) RRS feed

  • Pergunta

  • Pessoal preciso ordenar um List que criei que guarda algumas informações de um xml de uma nota fiscal,

    essa ordenação deve ser feita pelo CNPJ+Numero NF + Serie

    Ex: cnpj + numero nf + serie

        1º)  11.111.111/1111-11+01+1  

        2º)  11.111.111/1111-11+02+1

    (não existe os pontos, traços e o sinal de positivo, mera ilustração)

    segue o código que fiz mas não funcionou:

                ListaNfe.Sort(delegate(clNF n1, clNF n2)
                {
                    return n1.nfe.Emit.CNPJ.CompareTo(n2.nfe.Emit.CNPJ) +

                                n1.nfe.Ide.nNF.CompareTo(n2.nfe.Ide.nNF) +

                                n1.nfe.Ide.serie.CompareTo(n2.nfe.Ide.serie);
                });


    • Editado Roger Ponsoni quarta-feira, 27 de novembro de 2013 16:39
    quarta-feira, 27 de novembro de 2013 16:37

Todas as Respostas

  • Com Linq to Objects

    Fiz um classe Exemplo:

    public class XmlNota
    {
    	public string CNPJ { get; set; }
    	public string NF { get; set; }
    	public string SERIE { get; set; }
    }

    Depois no código fiz uma lista preenchi toda desordenada e mande ordenador posteriormente e o resultado

    ficou em notasOrdenadas

    IList<XmlNota> notas = new List<XmlNota>();
    notas.Add(new XmlNota() { CNPJ = "11111111/111111", NF = "02", SERIE = "1" });
    notas.Add(new XmlNota() { CNPJ = "11111111/111111", NF = "01", SERIE = "1" });
    notas.Add(new XmlNota() { CNPJ = "11111111/111112", NF = "02", SERIE = "1" });
    notas.Add(new XmlNota() { CNPJ = "11111111/111112", NF = "01", SERIE = "2" });
    
    IList<XmlNota> notasOrdenadas = notas.OrderBy(x => x.CNPJ)
    	.ThenBy(x1=>x1.NF)
    	.ThenBy(x2=>x2.SERIE)
    	.ToList();



    Fulvio Cezar Canducci Dias

    quarta-feira, 27 de novembro de 2013 19:52