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 :)
Dim resultss As IEnumerable(Of Integer) =
{
01,03,04,06,07,08,09,20,28,35.39,45,48,55,66,68,75,78.90,98........
}
Dim selectedValues As IEnumerable(Of Integer) = resultss.Take(10)
Me.ListBox1.Items.AddRange(selectedValues.Cast(Of Object).ToArray)
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
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:
Dim values As IEnumerable(Of Integer) =
{
1, 3, 4, 6, 7, 8, 9, 20, 22, 28, 35
}
Dim selectedValues As IEnumerable(Of Integer) =
From value As Integer In values
Group By CStr(value).Last Into Group
Select Group.First
Take 10
Me.ListBox1.Items.AddRange(selectedValues.Cast(Of Object).ToArray)
Output:
1, 3, 4, 6, 7, 8, 9, 20, 22, 35
Saludos
Cita de: 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:
Dim values As IEnumerable(Of Integer) =
{
1, 3, 4, 6, 7, 8, 9, 20, 22, 28, 35
}
Dim selectedValues As IEnumerable(Of Integer) =
From value As Integer In values
Group By CStr(value).Last Into Group
Select Group.First
Take 10
Me.ListBox1.Items.AddRange(selectedValues.Cast(Of Object).ToArray)
Output:
1, 3, 4, 6, 7, 8, 9, 20, 22, 35
Saludos
Perfecto :)
Gracias elektro
Luis