Nesecito eliminar registros negativos y cero

Iniciado por luis456, 9 Febrero 2015, 10:49 AM

0 Miembros y 1 Visitante están viendo este tema.

luis456

Otro de mis ligeros problemas tengo este codigo que me muestra :  


-2
-1
0
2
3
4
1
5
6

nesecito eliminar esto de los resultados, que no muestre o mejor elimine los numeros que tengan el signo negativo y el cero
-2
-1
0


Código (vbnet) [Seleccionar]
Dim Resultodo1 As IEnumerable(Of Integer) =
           (
               From Value As Integer
                 In (Result1.Concat(Result2)).Distinct Where (Value <= MAX))


       ListBox1.Items.AddRange(Resultodo1.Cast(Of Object).ToArray)



Luis
Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

#1
M recorde de un codigo que me dio Elektro


Código (vb.net) [Seleccionar]
'For Index As Integer = 0 To (Result1.Count - 1)

           Select Case Result1(Index)

               Case Is = 0 ' El valor es 0.
                   ' Hacer algo con el número 0 aquí.
                   ' Result1(Index) = Not 0

               Case Is < 0 ' El valor es negativo.
                   ' Lo convierto a positivo.
                   Result1(Index) = Math.Abs(Result1(Index))

           End Select '/ Result1(Index)  



Funciona con los negativos pero no me elimina el 0

luis
Que tu sabiduria no sea motivo de Humillacion para los demas

Usuario Invitado

  • Recorrer lista o arreglo con un for.
  • Dentro del for evaluar si el número actual es neutro o negativo.
  • Si lo es, eliminar de la lista.

    Si usas arrays es posible que no puedas eliminar una posición (realmente desconozco esto en VB.NET) como en otros lenguajes; si es así, puedes trabajar con un tipo de dato que te permita coleccionar objetos y eliminarlos también (se redimensiona automáticamente) como Listas.

    Salu2.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

nevachana

Ahora mismo no me acuerno de nada de vb pero en c# yo lo haría asi ^^
foreach(string line in list)
{
if(int.parse(line)<=0)
{
list.remove(line);
}
}
No sé si está bien pero la idea es más o menos esa ^^

OscarCadenas_91

hola, y si lo haces esta forma:

Código (vbnet) [Seleccionar]

Dim List As New List(Of String)
           For Each numeros As ListViewItem In ListView1.Items
            If CDbl(numeros.Text) > 0 Then
                List.Add(numeros.Text)
            End If
          Next
        ListView1.Items.Clear()
        For Each Data As String In List
            ListView1.Items.Add(Data)
        Next




Eleкtro

#5
Joder Luis... ¿no se te ha ocurrido añadir una condición más a la query de LINQ?:
...Where (Value <= max AndAlso Value > 0)

Código (vbnet) [Seleccionar]
Dim values1 As IEnumerable(Of Integer) = {-2, -1, 0, 1, 2}
Dim values2 As IEnumerable(Of Integer) = {-20, -10, 0, 10, 20}
Dim max As Integer = 10

Dim result As IEnumerable(Of Integer) =
   (From Value As Integer In (values1.Concat(values2)).Distinct
    Where (Value <= max AndAlso Value > 0))

ListBox1.Items.AddRange(result.Cast(Of Object).ToArray)


PD ¿porque no aprendes en serio despues de tanto tiempo manejando VB.Net?, al menos lo básico ...como esto, saldrías de muchos apuros por ti mismo y eso te ayudaría a avanzar más rápido...

Saludos!








luis456

Cita de: Eleкtro en 11 Febrero 2015, 13:43 PM
Joder Luis... ¿no se te ha ocurrido añadir una condición más a la query de LINQ?:
...Where (Value <= max AndAlso Value > 0)

Código (vbnet) [Seleccionar]
Dim values1 As IEnumerable(Of Integer) = {-2, -1, 0, 1, 2}
Dim values2 As IEnumerable(Of Integer) = {-20, -10, 0, 10, 20}
Dim max As Integer = 10

Dim result As IEnumerable(Of Integer) =
   (From Value As Integer In (values1.Concat(values2)).Distinct
    Where (Value <= max AndAlso Value > 0))

ListBox1.Items.AddRange(result.Cast(Of Object).ToArray)


PD ¿porque no aprendes en serio despues de tanto tiempo manejando VB.Net?, al menos lo básico ...como esto, saldrías de muchos apuros por ti mismo y eso te ayudaría a avanzar más rápido...

Saludos!

Gracias Elektro
recien lo pruebo. ya que estuve indispuesto por catarro y si me vale y  cada dia aprendo un poco pero poco eee,


Luis

Que tu sabiduria no sea motivo de Humillacion para los demas