Autor
|
Tema: Eliminar duplicados o repetidos (Leído 12,081 veces)
|
Eleкtro
Ex-Staff
Conectado
Mensajes: 9.878
|
repito la pregunta: Dices que en este ejemplo solo debe quedar una secuencia (o eso entiendo por "registro"), ¿cual?, y ¿por qué?. No se si esto produce el resultado que esperas: Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11} Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11} Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9} Dim col4 As IEnumerable(Of Integer) = {2, 2, 3} Dim max As Integer = 10 Dim cols As IEnumerable(Of IEnumerable(Of String)) = From col As IEnumerable(Of Integer) In {col1, col2, col3, col4} Group By String.Join("", col).AsEnumerable Into Group Select From value As Integer In Group.First.Distinct Where Not (value > max) Select value.ToString(format:="0#") ListBox1.Items.AddRange((From col As IEnumerable(Of String) In cols Select String.Join(", ", col)).ToArray)
Resultado de ejecución: 01, 05, 06, 07, 08, 09, 10 01, 02, 08, 06, 09 02, 03 Saludos
|
|
« Última modificación: 30 Abril 2015, 22:15 pm por Eleкtro »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
Bueno si y no jejje a si es ahora como entrega los resultados 01, 05, 06, 07, 08, 09, 10 ,20 ,80, 88 01, 02, 08, 06, 09 <-----eliminar ya que tiene que tener 10 numeros 02, 03<-------------------eliminar ya que tiene que tener 10 numeros pero debe solo quedar asi , solo los registros completos que cumplan la condicion de 10 registros ( disculpas no habia contado bien jeje) 01, 05, 06, 07, 08, 09, 10,20,80,88 Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 15, 80} Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 85} Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9} Dim col4 As IEnumerable(Of Integer) = {2, 2, 3} Dim MAX As Integer = 10
Gracias Luis
|
|
« Última modificación: 1 Mayo 2015, 07:40 am por luis456 »
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
Eleкtro
Ex-Staff
Conectado
Mensajes: 9.878
|
01, 02, 08, 06, 09 <-----eliminar ya que tiene que tener 10 numeros 02, 03<-------------------eliminar ya que tiene que tener 10 numeros Entendí que el "10", es decir esa variable "max" era con la intención de limitar los valores, no la cantidad de valores por secuencia. Solo debes evaluar el valor de la función Enumerable.Count() usando la clausula WHERE en la misma query que te he mostrado. ➢ Enumerable.Count() - MSDNReturns the number of elements in a sequence. ...y eliminar esto que yo escribí, claro está: ... Where Not (value > max) ...
Creo que eres capaz de corregirlo pero por si acaso te doy una pista, ese WHERE que he citado tienes que eliminarlo, no reemplazarlo, el WHERE que tu tienes que añadir debe ir en otro lugar. Saludos
|
|
« Última modificación: 1 Mayo 2015, 08:47 am por Eleкtro »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
Hola con pistas tampoco doy porque he mirado le que hay en msd y no se como contar o mirar dentro de los col1 ,col2... que estan a su ves en el grupo cols ya que si hago esta (prueba) me cuenta es el total de col y no los que estan dentro de col1 ' eliminar registros iguales en " Lnumbers " lo solucione quitandolos del listxbo ' eliminar registros MENORES a MAX ' En este codigo deberia quedar un solo registro de los cuatro Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 15, 80} Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 85} Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9} Dim col4 As IEnumerable(Of Integer) = {2, 2, 3} Dim MAX As Integer = 10 Dim cols As IEnumerable(Of IEnumerable(Of String)) = From col As IEnumerable(Of Integer) In {col1, col2, col3, col4} Group By String.Join("", col).AsEnumerable Into Group Select From value As Integer In Group.First.Distinct Where Not (value = MAX) Select value.ToString(format:="0#") ListBox1.Items.AddRange((From col As IEnumerable(Of String) In cols Select String.Join(", ", col)).ToArray) '*****************************************preubas**********------------------------------------------------ Dim cuenta As Integer = cols.Count() MsgBox(cols.Count) lleva cuatro bien MsgBox(col1.Count) lleva 10 numeros bien MsgBox(col2.Count) lleva 9 mal eliminar
luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
Eleкtro
Ex-Staff
Conectado
Mensajes: 9.878
|
con pistas tampoco Dim cuenta As Integer = cols.Count() MsgBox(cols.Count) lleva cuatro bien MsgBox(col1.Count) lleva 10 numeros bien MsgBox(col2.Count) lleva 9 mal eliminar
Eso no es lo que te expliqué que debes hacer, solo tienes que utilizar ese cols.Count() en la query de LINQ que te mostré y que ya te lo mencioné... no se como contar o mirar dentro de los col1 ,col2... que estan a su ves en el grupo cols Con la claúsula WHERE. From col As IEnumerable(Of Integer) In {col1, col2, col3, col4} Where (col.Count() <= Max) Group By... ...
¿Ves cómo era muy facil?. Saludos
|
|
« Última modificación: 1 Mayo 2015, 19:02 pm por Eleкtro »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
es que la duda que tenia era con la logica ;( si col tiene la coleccion completa de col1,,etc era como contaria los numeros de col1 ??? bueno creo me entiendes , lo bueno es que por fin pude consultar los 100 ejemplos de linq: que me pasaste en su dia y ahora preguntare menos jejejje (espero ) vi muchas rutinas que me hacen falta Gracias Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Eliminar duplicados fichero binario
Programación C/C++
|
andrewmetal93
|
1
|
2,249
|
9 Mayo 2012, 19:23 pm
por andrewmetal93
|
|
|
Eliminar Caracteres Repetidos
« 1 2 »
.NET (C#, VB.NET, ASP)
|
birdez
|
11
|
17,169
|
31 Mayo 2012, 18:21 pm
por birdez
|
|
|
eliminar datos duplicados array enteros
Java
|
javaman666
|
2
|
2,845
|
9 Abril 2014, 12:28 pm
por Zoik
|
|
|
[Comparar ArrayList] Eliminar Duplicados
Java
|
Kataplaf
|
0
|
2,473
|
21 Agosto 2015, 17:35 pm
por Kataplaf
|
|
|
eliminar números repetidos de dos vectores
Programación C/C++
|
creiko
|
4
|
3,715
|
15 Abril 2016, 20:05 pm
por HardForo
|
|