如何在.net中合并两个数的数组?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (104)

是否有内置的功能,NET 2.0,将两个数组合并成一个数组?

这两个数组都是相同的类型。从代码中一个函数中获取这些数组,并且无法修改该函数的不同的格式返回数据。

提问于
用户回答回答于

在C#3.0中,使用LINQ方法可以轻松地完成这一任务:

int[] front = { 1, 2, 3, 4 };
int[] back = { 5, 6, 7, 8 };
int[] combined = front.Concat(back).ToArray();

在C#2.0中,这个可能是比较好的解决方案:

int[] front = { 1, 2, 3, 4 };
int[] back = { 5, 6, 7, 8 };

int[] combined = new int[front.Length + back.Length];
Array.Copy(front, combined, front.Length);
Array.Copy(back, 0, combined, front.Length, back.Length);
用户回答回答于

如果可以操作其中一个数组,则可以在执行副本之前调整其大小:

T[] array1 = getOneArray();
T[] array2 = getAnotherArray();
int array1OriginalLength = array1.Length;
Array.Resize<T>(ref array1, array1OriginalLength + array2.Length);
Array.Copy(array2, 0, array1, array1OriginalLength, array2.Length);

否则,可以创建一个新数组。

T[] array1 = getOneArray();
T[] array2 = getAnotherArray();
T[] newArray = new T[array1.Length + array2.Length];
Array.Copy(array1, newArray, array1.Length);
Array.Copy(array2, 0, newArray, array1.Length, array2.Length);

更多关于MSDN上可用的Array方法的信息...

扫码关注云+社区

领取腾讯云代金券