Te agradezco tu aporte pero lo que busco es eliminar los que tengan signos negativo adelante ,se que tenia todas esas Rutinas gracias a Electro, pero he perdido todos esos códigos y estoy en cero
he recuperado parte de todo el codigo pero no encuentro este,
saludos
Luis
no se, soy yo o te explicas mal
"lo que busco es eliminar los que tengan signos negativo adelante" , esto es muy ambiguo por lo menos en un principio
Esto está respondido arriba multiplicando los elementos por -1, no lo hice porque era mas que evidente pero parece que quiere que te den el código hecho;
For I As Integer = 0 To ListBox1.Items.Count - 1
If ListBox1.Items(I) < 0 Then
ListBox1.Items(I) = ListBox1.Items(I) * -1
End If
Next
Como se repiten hay que quitar los repetidos, usando el array LIST como te expliqué y he publicado el código eliminas los repetidos.
Public Class Form1
Dim lista() As Integer = {-1, -2, -3, -4, -5, 0, 1, 2, 3, 4, 5, 6}
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'ListBox1.DataSource = lista
For Each elemento In lista
ListBox1.Items.Add(elemento)
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'//QUITAR SIGNOS NEGATIVOS
For I As Integer = 0 To ListBox1.Items.Count - 1
If ListBox1.Items(I) < 0 Then
ListBox1.Items(I) = ListBox1.Items(I) * -1 'nota: no funciona si se usa ListBox1.DataSource()
End If
Next
'//QUITAR ELEMENTOS REPETIDOS
Dim nuevaLista As New List(Of Integer)
For Each elemento In ListBox1.Items
nuevaLista.Add(elemento)
Next
nuevaLista = nuevaLista.Distinct.ToList() 'elimina repetidos
nuevaLista.Sort() 'Ordena la lista
ListBox1.Items.Clear() 'limpia el listbox (no funciona con DataSource)
'ListBox1.DataSource= Nothing 'usar solo si es se usó datasource para llenar el listbox
For Each Elemento As String In nuevaLista
ListBox1.Items.Add(Elemento)
Next
End Sub
End Class
Si lo que quieres, porque ya no se que pensar es quitar los número negativos entonces usa linq para obtener solo aquellos números que sean mayores que cero, aunque hay formas más típicas de hacerlo como pasar todo a un array, y volver a meter en e listbox ya sin los negativos usando if then y for next
Public Class Form1
Dim lista() As Integer = {-1, -2, -3, -4, -5, 0, 1, 2, 3, 4, 5, 6}
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ListBox1.DataSource = lista
'For I As Integer = 0 To lista.Length -1
' ListBox1.Items.Add(lista(I))
'Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'//elimina los número negativos
Dim NumPositivo As IEnumerable(Of String) = Nothing
NumPositivo = From value1 In lista Where (value1 >= 0) Select String.Format("{0}", value1)
ListBox1.DataSource = Nothing
'Si no se usara DataSourse usar lo siguinte:
'ListBox1.Items.Clear()
For Each pairs As String In NumPositivo
ListBox1.Items.Add(pairs)
My.Application.DoEvents()
Next pairs
End Sub
End Class
Añado que preguntaste:
Como evitar se muestren números con el signo negativo en un ListBox ?
y como "como evitar" es multiplicar por -1 ANTES de meterlo en el listbox y si no los quieres meter números negativos usa la condición si es menor que cero no lo mentas en el listbox.
Claro que si quieres una respuesta exclusivamente de @Elektro perfectamente elaborada, entonces ya eso es otra cosa. A ver si aparece por aquí y si no pues le envías un mensaje personal y a ver si te contesta.
saludos