我想在一个数组中合并三个数组。
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}
最好的问候
答案 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组成一个数组,然后对其进行排序,这自然会将位以正确的顺序放置,但是如果您的数据没有排序这样,这两种方法将产生不同的输出!