Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: luis456 en 23 Marzo 2020, 14:17 pm



Título: Eliminar registros iguales condicionados :(
Publicado por: luis456 en 23 Marzo 2020, 14:17 pm
Trabajando con este código de combinaciones o permutas ?? quiero eliminar los registros que dupliquen los números o que tengan los mismos números en diferente orden dejando solo uno de ellos ya que me repite muchos registros donde tienen los mismos numeros:
ejemplo

Código
  1. Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
  2.        Dim Elementos As IEnumerable(Of Integer) = {1, 4, 5, 8, 33, 44, 45, 68, 98}
  3.        Dim EleX As Integer = 0
  4.        Dim EleX1 As Integer = 0
  5.        Dim EleX2 As Integer = 0
  6.        Dim EleX3 As Integer = 0
  7.        Dim EleX4 As Integer = 0
  8.        ListBox4.Items.Clear() 'Limpia el ListBox
  9.        For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
  10.            For I2 As Integer = EleX To Elementos.Count - 1
  11.                For I3 As Integer = EleX To Elementos.Count - 2
  12.                    For I4 As Integer = EleX To Elementos.Count - 3
  13.                        For I5 As Integer = EleX To Elementos.Count - 4
  14.                            For I6 As Integer = EleX To Elementos.Count - 5
  15.                                If Elementos(I2) <> Elementos(I3) And Elementos(I3) <> Elementos(I2) < Elementos(I4) < Elementos(I5) Then
  16.                                    ListBox4.Items.Add(String.Format(Format1, Elementos(I1), Elementos(I2), Elementos(I3), Elementos(I4), Elementos(I5), Elementos(I6)))
  17.                                End If
  18.  
  19.                            Next
  20.                        Next
  21.                    Next
  22.                Next
  23.            Next
  24.        Next
  25.        MessageBox.Show("Combinaciones: " & ListBox4.Items.Count)
  26.    End Sub


estoy tratando de implentarle esta funcion pero no me sale

Código
  1. '//QUITAR ELEMENTOS REPETIDOS --------------------funciona bien con otra funcione con esta me da error
  2.        Dim nuevaLista As New List(Of Integer)
  3.        For Each elemento In ListBox4.Items
  4.            nuevaLista.Add(elemento)
  5.        Next
  6.  
  7.        nuevaLista = nuevaLista.Distinct.ToList() 'elimina repetidos
  8.        nuevaLista.Sort() 'Ordena la lista
  9.        ListBox4.Items.Clear() 'limpia el listbox (no funciona con DataSource)
  10.        'ListBox4.DataSource= Nothing 'usar solo si es se usó datasource para llenar el listbox
  11.        For Each Elemento As String In nuevaLista
  12.            ListBox4.Items.Add(Elemento)
  13.        Next


saludos
Luis





Título: Re: Eliminar registros iguales condicionados :(
Publicado por: **Aincrad** en 23 Marzo 2020, 14:39 pm
  ListBox1.Items.Add(String.Format(Format1, Elementos(I1), Elementos(I2), Elementos(I3), Elementos(I4), Elementos(I5), Elementos(I6)))

"Format1" que formato le estas dando al String? .


Título: Re: Eliminar registros iguales condicionados :(
Publicado por: luis456 en 23 Marzo 2020, 15:13 pm
"Format1" que formato le estas dando al String? .

Fue la solución que me dio el visual ya que antes usaba
Código
  1. String.Format("{0:00}, {1:00}, {2:00}

pero me daba error ??

saludos


Título: Re: Eliminar registros iguales condicionados :(
Publicado por: **Aincrad** en 23 Marzo 2020, 15:16 pm
Osea, muestrame la salida en el listbox, osea un imagen de como van los numero . asi puedo identificar el formato que estas usando. ya que hay 6 elementos.

que serian algo como : {0}{1}{2}{3}{4}{5} . necesito ver la salida.


Título: Re: Eliminar registros iguales condicionados :(
Publicado por: luis456 en 23 Marzo 2020, 15:49 pm
lo que me muestra el lisbtox es esto: salen muchos registros (8747)  pero si te fijas en la muestra ,el ultimo si cumple la condición de números diferentes ,no debe tener números repetidos en cada registro

01.04.05.04.04.05
01.04.05.04.04.08
01.04.05.04.04.33

08.98.45.33.44.05 <------tiene que tener números diferentes como este registro

gracias por tu atencion
Luis