ELIMINAR REPETIDOS DO LISTBOX

 Tópico anterior Próximo tópico Novo tópico

ELIMINAR REPETIDOS DO LISTBOX

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#475596 - 03/08/2017 11:09:05

TRINDADI
SAOP PAULO
Cadast. em:Janeiro/2014


Bom dia pessoal.
Alguém poderia me ajudar! Eu preciso percorrer um Listbox e eliminar os números repetidos dele.
Ex:  
Listbox1
01 02 03 04 02 05 06 04  
01 03 04 03 05 01 07 05
02 03 02 04 07 04 07 10
A saída para Listbox2, ficaria assim:
Listbox2
01 02 03 04 05 06
01 03 04 05 07
02 03 04 07 10
(ou se for mais fácil pode eliminar no próprio Listbox1, sem enviar para o Listbox2, tambem me serve)
Eu comecei o código, mas não consigo dar continuidade.
Private Sub cdmRetiraDuplicidades_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cdmRetiraDuplicidades.Click
        Dim Produtos() As String
        Dim Lista
        Dim Unidades
        For Lista = 0 To lstGerada.Items.Count - 1
            Produtos = Split(Listbox1.Items(Lista), " ")
            For Unidades = 0 To UBound(Produtos)

Desde já agradeço





#475598 - 03/08/2017 11:25:53

FOXMAN
BARRETOS
Cadast. em:Janeiro/2001


Membro da equipe
Como está sendo montado os dados do Listbox1 ??? De onde vem os dados ???
Isso pode ser resolvido diretamente no banco de dados (caso os dados venha de algum banco)
Outra opção porém menos recomendada é ao adicionar o dado no listbox percorrer ele para localizar algo semelhante(eu particularmente não faria assim).


E a opção que recomendo seria :


Dim items(Listbox1.Items.Count - 1) As Object
Listbox1.Items.CopyTo(items, 0)
Listbox1.Items.Clear()
Listbox1.Items.AddRange(items.AsEnumerable().Distinct().ToArray())










Grupo DotNet.Br no FaceBook



#475624 - 06/08/2017 13:58:01

TRINDADI
SAOP PAULO
Cadast. em:Janeiro/2014


Citação:
:
Bom dia pessoal.
Alguém poderia me ajudar! Eu preciso percorrer um Listbox e eliminar os números repetidos dele.
Ex:  
Listbox1
01 02 03 04 02 05 06 04  
01 03 04 03 05 01 07 05
02 03 02 04 07 04 07 10
A saída para Listbox2, ficaria assim:
Listbox2
01 02 03 04 05 06
01 03 04 05 07
02 03 04 07 10
(ou se for mais fácil pode eliminar no próprio Listbox1, sem enviar para o Listbox2, tambem me serve)
Eu comecei o código, mas não consigo dar continuidade.
Private Sub cdmRetiraDuplicidades_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cdmRetiraDuplicidades.Click
        Dim Produtos() As String
        Dim Lista
        Dim Unidades
        For Lista = 0 To lstGerada.Items.Count - 1
            Produtos = Split(Listbox1.Items(Lista), " ")
            For Unidades = 0 To UBound(Produtos)

Desde já agradeço







#475625 - 06/08/2017 14:03:05

TRINDADI
SAOP PAULO
Cadast. em:Janeiro/2014


Citação:
:
Como está sendo montado os dados do Listbox1 ??? De onde vem os dados ???
Isso pode ser resolvido diretamente no banco de dados (caso os dados venha de algum banco)
Outra opção porém menos recomendada é ao adicionar o dado no listbox percorrer ele para localizar algo semelhante(eu particularmente não faria assim).


E a opção que recomendo seria :


Dim items(Listbox1.Items.Count - 1) As Object
Listbox1.Items.CopyTo(items, 0)
Listbox1.Items.Clear()
Listbox1.Items.AddRange(items.AsEnumerable().Distinct().ToArray())









FOXMAN, obrigado pela resposta. Seu código funciona para eliminar a linha toda: Eu preciso que elimine apenas elementos dentro da linha;
Estava pensando em fazer um split dentro de um textbox, e enviar para outro Listbox. Se alguem tiver uma idéia eu agradeço.



Resposta escolhida #475626 - 06/08/2017 16:44:33

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 06/08/2017 16:54:38 por JABA

Private Function EliminaRepetidos(sequencia As String) As String
        Return String.Join(" ", Split(sequencia, " ").Distinct.ToArray)
End Function

'PARA USAR:

For i As Integer = 0 To lstGerada.Items.Count - 1
   lstGerada.Items(i) = EliminaRepetidos(lstGerada.Items(i))
Next



_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#475631 - 06/08/2017 22:32:35

TRINDADI
SAOP PAULO
Cadast. em:Janeiro/2014


Citação:
:
Private Function EliminaRepetidos(sequencia As String) As String
        Return String.Join(" ", Split(sequencia, " ").Distinct.ToArray)
End Function

'PARA USAR:

For i As Integer = 0 To lstGerada.Items.Count - 1
   lstGerada.Items(i) = EliminaRepetidos(lstGerada.Items(i))
Next



Valeu Jabá,  
Perfeito funcionou.Muito obrigado




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por TRINDADI em 06/08/2017 22:33:21