ORDENAR LIST
boa tarde, estou trabalhando com list para buscar dados no BD, e preciso ordenar os dados por diferentes campos, até aà tudo bem, mas quando tento ordenar com dois campos ao mesmo tempo, não dá certo, abaixo segue o código que estou usando:
Dim Pop as list (of Populacao)
abasteço o list
Pop.Sort(Function(p1 As Populacao, p2 As Populacao) p2.Nome.CompareTo(p1.Nome) + p2.Sobrenome.CompareTo(p1.Sobrenome) )
neste caso está em ordem decrescente
se puderem me ajudar
Dim Pop as list (of Populacao)
abasteço o list
Pop.Sort(Function(p1 As Populacao, p2 As Populacao) p2.Nome.CompareTo(p1.Nome) + p2.Sobrenome.CompareTo(p1.Sobrenome) )
neste caso está em ordem decrescente
se puderem me ajudar
Se você quer só ordenar, use uma expressão lambda. Abaixo, ordenando por nome ascendente e sobrenome descendente:
Dim pop As New List(Of Popolacao)()
pop.OrderBy(Function(p) p.Nome).OrderByDescending(Function(p) p.SobreNome)
nao funcionou, continua mantendo a ordem anterior, sem alterar nem a ordem do nome ou do sobrenome
Você precisa de uma nova variável para receber o resultado...
[c]
Dim pop As New List(Of Popolacao)()
[ô]procedimento de preenchimento de [Ô]pop[Ô]
Dim pop2 As New List(Of Popolacao)() = pop.OrderBy(Function(p) p.Nome).OrderByDescending(Function(p) p.SobreNome)
[c]
Dim pop As New List(Of Popolacao)()
[ô]procedimento de preenchimento de [Ô]pop[Ô]
Dim pop2 As New List(Of Popolacao)() = pop.OrderBy(Function(p) p.Nome).OrderByDescending(Function(p) p.SobreNome)
mesmo assim deu erro:
Unable to cast object of type [ô]System.Linq.OrderedEnumerable'2[SIPEN.Populacao,System.String][ô] to type [ô]System.Collections.Generic.List'1[SIPEN.Populacao][ô].
Unable to cast object of type [ô]System.Linq.OrderedEnumerable'2[SIPEN.Populacao,System.String][ô] to type [ô]System.Collections.Generic.List'1[SIPEN.Populacao][ô].
Ao final adicione ToList()
Dim pop As New List(Of Popolacao)()
[ô]procedimento de preenchimento de [Ô]pop[Ô]
Dim pop2 As New List(Of Popolacao)() = pop.OrderBy(Function(p) p.Nome).OrderByDescending(Function(p) p.SobreNome).ToList()
Obrigado KERPLUNK, agora rodou lindo!!
Até mais
Até mais
Tópico encerrado , respostas não são mais permitidas