如果有更好的方法将多个数组复制到一个数组中,谁能提供建议?生成的数组必须具有相同顺序的元素,例如首先是 arrayOne
值,然后是 arraySecond
值等。
以下是我当前正在执行的模型,它按预期工作。正在寻找一种更智能的方法。
// Initialise the first array.
string[] arrayOne = new string[5];
arrayOne[0] = "arrayOneValue[0]";
arrayOne[1] = "arrayOneValue[1]";
arrayOne[2] = "arrayOneValue[2]";
arrayOne[3] = "arrayOneValue[3]";
arrayOne[4] = "arrayOneValue[4]";
// Initialise the second array.
string[] arrayTwo = new string[6];
arrayTwo[0] = "arrayTwoValue[0]";
arrayTwo[1] = "arrayTwoValue[1]";
arrayTwo[2] = "arrayTwoValue[2]";
arrayTwo[3] = "arrayTwoValue[3]";
arrayTwo[4] = "arrayTwoValue[4]";
arrayTwo[5] = "arrayTwoValue[5]";
// Initialise the third array.
string[] arrayThree = new string[3];
arrayThree[0] = "arrayThreeValue[0]";
arrayThree[1] = "arrayThreeValue[1]";
arrayThree[2] = "arrayThreeValue[2]";
// string[] arrayN = new string[n]
//.
//.
//.
// Initialise the target array.
string[] finalArray = new string[arrayOne.Length + arrayTwo.Length + arrayThree.Length];
// ArrayN - string[] finalArray = new string[arrayOne.Length + arrayTwo.Length + arrayThree.Length + arrayN.Length];
// Copy/merge the three arrays into the target array.
Array.Copy(arrayOne, 0, finalArray, 0, arrayOne.Length);
Array.Copy(arrayTwo, 0, finalArray, arrayOne.Length, arrayTwo.Length);
Array.Copy(arrayThree, 0, finalArray, (arrayOne.Length + arrayTwo.Length), arrayThree.Length);
//.
//.
//.
//.
// ArrayN - Array.Copy(arrayN, 0, finalArray, (arrayOne.Length + arrayTwo.Length + arrayN), arrayN.Length) ?;
正如您所见,对于 arrayN,代码会变得更长。我最多有 5 个阵列要复制到一个阵列中,因此,它是可管理的。我将此技术用作 WebAPI 的一部分,其中 oracle 参数对象的集合根据要传递给多个 Oracle 存储过程的业务规则进行整合。这里的任何建议表示赞赏。提前致谢。 结果
Console output
/*--- Destination array -
arrayOneValue[0]
arrayOneValue[1]
arrayOneValue[2]
arrayOneValue[3]
arrayOneValue[4]
arrayTwoValue[0]
arrayTwoValue[1]
arrayTwoValue[2]
arrayTwoValue[3]
arrayTwoValue[4]
arrayTwoValue[5]
arrayThreeValue[0]
arrayThreeValue[1]
arrayThreeValue[2]*/
最佳答案
您可以只使用 LINQ .Concat
这样您就不需要手动处理数组的长度和偏移量:
var finalArray = arrayOne.Concat(arrayTwo).Concat(arrayThree).ToArray();
它的性能可能比使用 Array.Copy
稍差,但这段代码的可读性、可维护性和错误安全性要好得多,这一点更为重要。
关于c# 一种将多个数组复制/合并到一个数组中的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47321325/