ELIMINAR REPETIDOS DO LISTBOX
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
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())
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
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.
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
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