Foro de elhacker.net

Programación => .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
  1.        Dim arr1 As Integer() = {1, 2, 3}
  2.        Dim arr2 As Integer() = {4, 5, 6}
  3.        Dim arr3 As Integer() = {7, 8, 9}
  4.  
  5.        Dim Result As Integer() =
  6.            arr1.
  7.            Concat(arr2).
  8.            Concat(arr3).
  9.            ToArray
  10.  
  11.        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
  1.        Dim arr1 As Array = {1, 2, 3}
  2.        Dim arr2 As Array = {4, 5, 6}
  3.        Dim arr3 As Array = {7, 8, 9}
  4.  
  5.        Dim Result As Integer() =
  6.            arr1.Cast(Of Integer).
  7.            Concat(arr2.Cast(Of Integer)).
  8.            Concat(arr3.Cast(Of Integer)).
  9.            ToArray
  10.  
  11.        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

Código:
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
la 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
  1. 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
( 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
  1. Dim Result As Integer() = arr1.Concat(arr2).Concat(arr3).Distinct.ToArray

Saludos


Perfecto funciona  :)

Gracias a todos


Luis