Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: luis456 en 13 Enero 2014, 17:09 PM

Título: Unir dos arrays en un tercero
Publicado por: luis456 en 13 Enero 2014, 17:09 PM
Bueno eso mismo

tengo dos Arrays  " result1 y result2 " quiero unir estos dos array en un tercer array

"result3 " ya probé concatenando pero me pierdo jejej


Luis
Título: Re: Unir dos arrays en un tercero
Publicado por: 0x98364 en 13 Enero 2014, 17:46 PM
Crea un tercer array cuya longitud sea la suma de result1 y result2

Luego con un bucle for hasta result1.length vas metiendo los datos de result1 en result3, y otro bucle for que empiece desde la ultima posicion de result1.length hasta result2.length para meter los datos de result2
Título: Re: Unir dos arrays en un tercero
Publicado por: Eleкtro en 13 Enero 2014, 18:12 PM
Puedes usar LINQ:

Código (vbnet) [Seleccionar]
       Dim arr1 As Integer() = {1, 2, 3}
       Dim arr2 As Integer() = {4, 5, 6}
       Dim arr3 As Integer() = {7, 8, 9}

       Dim Result As Integer() =
           arr1.
           Concat(arr2).
           Concat(arr3).
           ToArray

       MsgBox(String.Join(", ", Result)) ' Result = {1, 2, 3, 4, 5, 6, 7, 8, 9}


¿Cual es el problema que tienes al concatenarlos?

Si tienes un Array puedes convertirlo/castearlo a un Enumerable para manejar LINQ.

Código (vbnet) [Seleccionar]

       Dim arr1 As Array = {1, 2, 3}
       Dim arr2 As Array = {4, 5, 6}
       Dim arr3 As Array = {7, 8, 9}

       Dim Result As Integer() =
           arr1.Cast(Of Integer).
           Concat(arr2.Cast(Of Integer)).
           Concat(arr3.Cast(Of Integer)).
           ToArray

       MsgBox(String.Join(", ", Result)) ' Result = {1, 2, 3, 4, 5, 6, 7, 8, 9}


Saludos!
Título: Re: Unir dos arrays en un tercero
Publicado por: luis456 en 13 Enero 2014, 18:18 PM
Bueno estaba haciendo esta chapuza ( Bisual +net o lo que sea jejej) pero pensaba que habria algo mas directo,la idea es que los resulatdos de result1 y result2 unirlos para eliminar repetidos

dim result3 as Integer


For Each result1 As String In result3
   
Next

For Each result2 As String In result3

Next


Luis
Título: Re: Unir dos arrays en un tercero
Publicado por: Eleкtro en 13 Enero 2014, 18:27 PM
Cita de: luis456 en 13 Enero 2014, 18:18 PMla idea es que los resulatdos de result1 y result2 unirlos para eliminar repetidos

( Siguiendo el código de arriba ) ~> Enumerable.Distinct (Método) (http://msdn.microsoft.com/es-es/library/system.linq.enumerable.distinct%28v=vs.110%29.aspx)

Código (vbnet) [Seleccionar]
Dim Result As Integer() = arr1.Concat(arr2).Concat(arr3).Distinct.ToArray

Saludos
Título: Re: Unir dos arrays en un tercero
Publicado por: luis456 en 13 Enero 2014, 18:30 PM
Cita de: Eleкtro en 13 Enero 2014, 18:27 PM
( Siguiendo el código de arriba ) ~> Enumerable.Distinct (Método) (http://msdn.microsoft.com/es-es/library/system.linq.enumerable.distinct%28v=vs.110%29.aspx)

Código (vbnet) [Seleccionar]
Dim Result As Integer() = arr1.Concat(arr2).Concat(arr3).Distinct.ToArray

Saludos


Perfecto funciona  :)

Gracias a todos


Luis