在C#中如何合并两个数组为新数组并打印数组所有元素
在C#中合并数组并打印元素的方法
原代码问题说明
你提供的代码存在几处错误:
- C#数组的长度属性是大写的
Length,arrA.length写法错误 - 合并数组时,
else分支里的arrB[i]会导致索引越界,arrB长度为2,当i=2时无对应元素,应改为arrB[i - arrA.Length] Console.WriteLine(newData[4]);中的newData是未定义变量,且newArr最大索引为3,访问索引4会报错
正确实现方式
方法一:手动遍历合并(修复原代码)
string[] arrA = {"1", "2"}; string[] arrB = {"3", "4"}; var totalLen = arrA.Length + arrB.Length; string[] newArr = new string[totalLen]; // 复制arrA的元素 for (int i = 0; i < arrA.Length; i++) { newArr[i] = arrA[i]; } // 复制arrB的元素 for (int i = 0; i < arrB.Length; i++) { newArr[arrA.Length + i] = arrB[i]; } // 打印数组所有元素 foreach (var item in newArr) { Console.WriteLine(item); }
方法二:使用LINQ(简洁写法)
需先引用System.Linq命名空间,用Concat直接合并数组:
using System.Linq; string[] arrA = {"1", "2"}; string[] arrB = {"3", "4"}; string[] newArr = arrA.Concat(arrB).ToArray(); // 打印所有元素 foreach (var item in newArr) { Console.WriteLine(item); }
方法三:使用Array.Copy(高效写法)
适合处理大数据量数组,系统原生方法性能更优:
string[] arrA = {"1", "2"}; string[] arrB = {"3", "4"}; string[] newArr = new string[arrA.Length + arrB.Length]; Array.Copy(arrA, newArr, arrA.Length); Array.Copy(arrB, 0, newArr, arrA.Length, arrB.Length); // 打印数组 foreach (var item in newArr) { Console.WriteLine(item); }
内容的提问来源于stack exchange,提问作者Muhammad Bilal
相关产品推荐
相关产品推荐

