如何通过2个数组重新排列数组?

时间:2015-05-18 20:01:08

标签: arrays vb.net

我写了一些代码。数组a是c数组的索引,数组b是索引a的项目。

dim a={0,1,3}
dim b={5,1,1}

我想像这样创建c数组。最大阵列长度为5。

c={5,1,0,1,0}

2 个答案:

答案 0 :(得分:1)

如果您想将i-th元素从b放置在i-th元素a指定的位置,您可以执行以下操作:

Dim c(a.Max()) As Integer
For i As Integer = 0 To a.GetUpperBound(0)
    c(a(i)) = b(i)
Next
'Result: c = { 5, 1, 0, 1 }

我不确定你是如何得出5的最大长度的。我只是假设数组应该足够大以容纳a中的最大元素。

答案 1 :(得分:1)

假设数组a和b的长度总是相等,C的长度等于数组b中的最大数。

请记住,在创建数组C时,必须从最大数字中减去1。 C(5)将生成C(0), C(1), C(2), C(3), C(4), C(5)

的6元素数组
Imports System

Module Module1
    Sub Main()
        Dim A As Integer() = {0, 1, 3}
        Dim B As Integer() = {5, 1, 1}
        Dim C(B.Max() - 1) As Integer

        For Index = 0 To A.GetUpperBound(0)
            C(A(Index)) = B(Index)
        Next

        Console.WriteLine(String.Join(" ", C))
        Console.ReadLine()
    End Sub
End Module

结果:

  

5 1 0 1 0