首页 > 解决方案 > 如何在visual basic中合并三个数组?

问题描述

我想将三个数组合并到一个数组中。

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}

最好的祝福

标签: arraysvb.netfor-loop

解决方案


我只是用 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 的数组,然后对其进行排序,这个将位自然地以正确的顺序排列,但如果您的数据没有以这种方式排序两种方法会产生不同的输出!


推荐阅读