elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Eliminar duplicados o repetidos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Eliminar duplicados o repetidos  (Leído 12,081 veces)
Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.878



Ver Perfil
Re: Eliminar duplicados o repetidos
« Respuesta #10 en: 30 Abril 2015, 22:04 pm »

repito la pregunta:
Citar
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:
Código
  1. Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11}
  2. Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11}
  3. Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9}
  4. Dim col4 As IEnumerable(Of Integer) = {2, 2, 3}
  5. Dim max As Integer = 10
  6.  
  7. Dim cols As IEnumerable(Of IEnumerable(Of String)) =
  8.    From col As IEnumerable(Of Integer) In {col1, col2, col3, col4}
  9.    Group By String.Join("", col).AsEnumerable
  10.    Into Group
  11.    Select From value As Integer In Group.First.Distinct
  12.           Where Not (value > max)
  13.           Select value.ToString(format:="0#")
  14.  
  15. ListBox1.Items.AddRange((From col As IEnumerable(Of String) In cols Select String.Join(", ", col)).ToArray)

Resultado de ejecución:
Código:
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 Desconectado

Mensajes: 551



Ver Perfil
Re: Eliminar duplicados o repetidos
« Respuesta #11 en: 1 Mayo 2015, 07:01 am »

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

Código
  1. Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 15, 80}
  2.        Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 85}
  3.        Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9}
  4.        Dim col4 As IEnumerable(Of Integer) = {2, 2, 3}
  5.        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 Conectado

Mensajes: 9.878



Ver Perfil
Re: Eliminar duplicados o repetidos
« Respuesta #12 en: 1 Mayo 2015, 08:35 am »

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() - MSDN
Cita de: MSDN
Returns the number of elements in a sequence.

...y eliminar esto que yo escribí, claro está:
Citar
Código
  1. ...
  2. Where Not (value > max)
  3. ...

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 Desconectado

Mensajes: 551



Ver Perfil
Re: Eliminar duplicados o repetidos
« Respuesta #13 en: 1 Mayo 2015, 16:35 pm »

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

Código
  1.  ' eliminar registros iguales en  " Lnumbers " lo solucione quitandolos del listxbo
  2.    ' eliminar registros MENORES a MAX
  3.    ' En este codigo deberia quedar un solo registro de los cuatro
  4.  
  5.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.        Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 15, 80}
  7.        Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 85}
  8.        Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9}
  9.        Dim col4 As IEnumerable(Of Integer) = {2, 2, 3}
  10.        Dim MAX As Integer = 10
  11.  
  12.  
  13.        Dim cols As IEnumerable(Of IEnumerable(Of String)) =
  14.            From col As IEnumerable(Of Integer) In {col1, col2, col3, col4}
  15.            Group By String.Join("", col).AsEnumerable
  16.            Into Group
  17.            Select From value As Integer In Group.First.Distinct
  18.                    Where Not (value = MAX)
  19.                   Select value.ToString(format:="0#")
  20.  
  21.        ListBox1.Items.AddRange((From col As IEnumerable(Of String) In cols Select String.Join(", ", col)).ToArray)
  22.        '*****************************************preubas**********------------------------------------------------
  23.        Dim cuenta As Integer = cols.Count()
  24.        MsgBox(cols.Count) lleva cuatro bien
  25.        MsgBox(col1.Count) lleva 10 numeros bien
  26.        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 Conectado

Mensajes: 9.878



Ver Perfil
Re: Eliminar duplicados o repetidos
« Respuesta #14 en: 1 Mayo 2015, 18:59 pm »

con pistas tampoco

Código
  1.        Dim cuenta As Integer = cols.Count()
  2.        MsgBox(cols.Count) lleva cuatro bien
  3.        MsgBox(col1.Count) lleva 10 numeros bien
  4.        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.

Código
  1. From col As IEnumerable(Of Integer) In {col1, col2, col3, col4}
  2. Where (col.Count() <= Max)
  3. Group By...
  4. ...

¿Ves cómo era muy facil?.

Saludos
« Última modificación: 1 Mayo 2015, 19:02 pm por Eleкtro » En línea



luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Eliminar duplicados o repetidos
« Respuesta #15 en: 1 Mayo 2015, 19:36 pm »

 :rolleyes: :rolleyes: :rolleyes: 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
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Eliminar duplicados fichero binario
Programación C/C++
andrewmetal93 1 2,249 Último mensaje 9 Mayo 2012, 19:23 pm
por andrewmetal93
Eliminar Caracteres Repetidos « 1 2 »
.NET (C#, VB.NET, ASP)
birdez 11 17,169 Último mensaje 31 Mayo 2012, 18:21 pm
por birdez
eliminar datos duplicados array enteros
Java
javaman666 2 2,845 Último mensaje 9 Abril 2014, 12:28 pm
por Zoik
[Comparar ArrayList] Eliminar Duplicados
Java
Kataplaf 0 2,473 Último mensaje 21 Agosto 2015, 17:35 pm
por Kataplaf
eliminar números repetidos de dos vectores
Programación C/C++
creiko 4 3,715 Último mensaje 15 Abril 2016, 20:05 pm
por HardForo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines