如何在Visual Basic中合并三个数组?

时间:2020-04-12 17:54:17

标签: arrays vb.net for-loop

我想在一个数组中合并三个数组。

Dim arr() = 1 4 7 10 
Dim arr2() = 2 5 8 11
Dim arr3() = 3 6 9 12

Dim arr4()

for i=0 to ubond.(arr1)+2

??????????????
Next

The result should be arr4()= {1 2 3 4 5 6 7 8 9 10 11 12}

最好的问候

1 个答案:

答案 0 :(得分:0)

我只是用LINQ对其进行连接和排序:

Dim arr4 = arr.Concat(arr2).Concat(arr3).OrderBy(Function(x) x)

是否呼叫.ToArray()是可选的,并且取决于您对arr4的处理方式。如果使用foreach循环枚举它,则可以像上面一样保留它。如果您将随机访问它或将它作为int数组传递,则对其调用ToArray

确保您Imports System.Linq


如果您不想使用LINQ,请执行以下简单循环:

Dim arr4() as New Integer(arr.Length * 3 - 1)

For x = 0 to arr.Length - 1 Step 1
  arr4(3*x) = arr(x)
  arr4(3*x+1) = arr2(x)
  arr4(3*x+2) = arr3(x)
Next x

这是完全不同的-LINQ版本会先将1 4 7 2 5 8 3 6 9组成一个数组,然后对其进行排序,这自然会将位以正确的顺序放置,但是如果您的数据没有排序这样,这两种方法将产生不同的输出!