Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: luis456 en 26 Marzo 2015, 11:53 am



Título: Eliminar filtrar numeros con terminaciones iguales
Publicado por: luis456 en 26 Marzo 2015, 11:53 am
Eliminar numeros con terminaciones iguales

Hola de nuevo aca estoy con mis chapusas en programacion :)

Formo combinaciones de numeros de un arreglo o variables pero donde el resultado no debe tener el mismo numero terminal explico :)

Código
  1. Dim resultss As IEnumerable(Of Integer) =
  2.            {
  3.                01,03,04,06,07,08,09,20,28,35.39,45,48,55,66,68,75,78.90,98........
  4.            }
  5.  
  6.        Dim selectedValues As IEnumerable(Of Integer) = resultss.Take(10)
  7.  
  8.        Me.ListBox1.Items.AddRange(selectedValues.Cast(Of Object).ToArray)
  9.    End Sub

esto me da combinaciones de 10 numeros


salida

01,03,04,06,07,08,09,20,28,35

39,45,48,55,66,68,75,78.90,98

en la primera combinacion esta el 08 y el 28
en la segunda combinacion estan el  45 55 75

la idea es que en ninguna combinacion  tenga repetidos el mismo numero terminal ?

Luis


Título: Re: Eliminar filtrar numeros con terminaciones iguales
Publicado por: Eleкtro en 26 Marzo 2015, 12:30 pm
Usando LINQ, una forma de hacerlo sería agrupar los valores por su último número y seleccionar el primer elemento de cada grupo para descartar los demás valores que acaben con el mismo número:

Código
  1.        Dim values As IEnumerable(Of Integer) =
  2.                   {
  3.                       1, 3, 4, 6, 7, 8, 9, 20, 22, 28, 35
  4.                   }
  5.  
  6.        Dim selectedValues As IEnumerable(Of Integer) =
  7.            From value As Integer In values
  8.            Group By CStr(value).Last Into Group
  9.            Select Group.First
  10.            Take 10
  11.  
  12.        Me.ListBox1.Items.AddRange(selectedValues.Cast(Of Object).ToArray)

Output:
Código:
1, 3, 4, 6, 7, 8, 9, 20, 22, 35

Saludos


Título: Re: Eliminar filtrar numeros con terminaciones iguales
Publicado por: luis456 en 26 Marzo 2015, 18:55 pm
Usando LINQ, una forma de hacerlo sería agrupar los valores por su último número y seleccionar el primer elemento de cada grupo para descartar los demás valores que acaben con el mismo número:

Código
  1.        Dim values As IEnumerable(Of Integer) =
  2.                   {
  3.                       1, 3, 4, 6, 7, 8, 9, 20, 22, 28, 35
  4.                   }
  5.  
  6.        Dim selectedValues As IEnumerable(Of Integer) =
  7.            From value As Integer In values
  8.            Group By CStr(value).Last Into Group
  9.            Select Group.First
  10.            Take 10
  11.  
  12.        Me.ListBox1.Items.AddRange(selectedValues.Cast(Of Object).ToArray)

Output:
Código:
1, 3, 4, 6, 7, 8, 9, 20, 22, 35

Saludos


Perfecto :)


Gracias elektro


Luis