为了账号安全,请及时绑定邮箱和手机立即绑定

合并.NET中的两个数组

合并.NET中的两个数组

开心每一天1111 2019-10-17 12:57:27
.NET 2.0中是否有内置函数将两个数组合并为一个数组?数组都是相同的类型。我是从代码库中广泛使用的函数获取这些数组的,无法修改该函数以其他格式返回数据。我希望避免编写自己的函数来完成此操作(如果可能)。
查看完整描述

3 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

在C#3.0中,可以使用LINQ的Concat方法轻松完成此操作:


int[] front = { 1, 2, 3, 4 };

int[] back = { 5, 6, 7, 8 };

int[] combined = front.Concat(back).ToArray();

在C#2.0中,您没有直接的方法,但是Array.Copy可能是最好的解决方案:


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);

这可以轻松地用于实现您自己的Concat。


查看完整回答
1 反对 回复 2019-10-17
?
慕的地10843

TA贡献1785条经验 获得超8个赞

使用LINQ:


var arr1 = new[] { 1, 2, 3, 4, 5 };

var arr2 = new[] { 6, 7, 8, 9, 0 };

var arr = arr1.Union(arr2).ToArray();

请记住,这将删除重复项。如果要保留重复项,请使用Concat。


查看完整回答
1 反对 回复 2019-10-17
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

如果可以操纵其中一个数组,则可以在执行复制之前调整其大小:


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);


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 1 关注
  • 906 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信