none
Alternar elementos de un array RRS feed

  • Pregunta

  • Hola!

    Tengo un array con varios elementos y quería alternar el índice para que se mezclaran, voy a explicarme mejor:

    array(0) = "test0"
    array(1) = "test1"
    array(2) = "test2"
    array(3) = "test3"
    array(4) = "test4"

    Y necesito que se mezclen consiguiendo lo siguiente (por ejemplo):

    array(0) = "test4"
    array(1) = "test1"
    array(2) = "test3"
    array(3) = "test0"
    array(4) = "test2"

    ¿Alguna idea? :)

    viernes, 13 de noviembre de 2015 16:42

Respuestas

  • Puedes usar OrderBy + Random

    Module Module1
    
        Sub Main()
    
            Dim Array(4) As String
    
            Array(0) = "test0"
            Array(1) = "test1"
            Array(2) = "test2"
            Array(3) = "test3"
            Array(4) = "test4"
    
            Dim r As New Random
    
            Array = Array.OrderBy(Function(a) r.Next(-100, 100)).ToArray()
    
            For k = 0 To Array.Length - 1
                Console.WriteLine("Array(" & k & ") = """ & Array(k) & """")
            Next
    
            Console.ReadKey()
        End Sub
    
    End Module
    

    • Propuesto como respuesta Norberto Agustin viernes, 13 de noviembre de 2015 17:22
    • Marcado como respuesta ASSaulting-T-E viernes, 13 de noviembre de 2015 18:09
    viernes, 13 de noviembre de 2015 17:03

Todas las respuestas

  • Puedes usar OrderBy + Random

    Module Module1
    
        Sub Main()
    
            Dim Array(4) As String
    
            Array(0) = "test0"
            Array(1) = "test1"
            Array(2) = "test2"
            Array(3) = "test3"
            Array(4) = "test4"
    
            Dim r As New Random
    
            Array = Array.OrderBy(Function(a) r.Next(-100, 100)).ToArray()
    
            For k = 0 To Array.Length - 1
                Console.WriteLine("Array(" & k & ") = """ & Array(k) & """")
            Next
    
            Console.ReadKey()
        End Sub
    
    End Module
    

    • Propuesto como respuesta Norberto Agustin viernes, 13 de noviembre de 2015 17:22
    • Marcado como respuesta ASSaulting-T-E viernes, 13 de noviembre de 2015 18:09
    viernes, 13 de noviembre de 2015 17:03
  • Gracias!!
    viernes, 13 de noviembre de 2015 18:09