在c#中是否有一个与php array_merge等效的函数

如果不是最好的创造方式是什么?

注意:合并不只是附加,它是相同的融合键。

此function存在于List元素上。 数组是C#中固定宽度的项目,因此如果不创建新数组,则无法修改大小。 但是,列表是一个不同的故事。 你可以做:

List sample = oldList.AddRange(someOtherList); // sample contains oldList with all elements of someOtherList appended to it. 

另外,使用LINQ,在List和Array之间进行转换非常容易

 .ToList() .ToArray() 

扩展方法。 如果你想用不确定数量的数组做到这一点,你可以这样做:

 public static class ArrayExtensions { public static T[] MergeArrays(this T[] sourceArray, params T[][] additionalArrays) { List elements = sourceArray.ToList(); if(additionalArrays != null) { foreach(var array in additionalArrays) elements.AddRange(array.ToList()); } return elements.ToArray(); } } 

并致电:

 int[] mergedArray = initialArray.MergeArrays(array1, array2, array3 /* etc */); 

您可以使用LINQ Concat()方法 :

 using System.Linq; // ... var arr1 = new[] { 1, 2, 3 }; var arr2 = new[] { 4, 5, 6 }; var merged = arr1.Concat(arr2); // This returns an IEnumerable // If you want an actual array, you can use: var mergedArray = merged.ToArray(); 

重复。 这里已经讨论过了:

在C#中追加数组的最有效方法?

由于数组在C#中具有固定大小,因此无法合并数组。 使用enumerables和List有很多方法可以做到这一点。

不能直接等同于array_merge。

如果您只想合并两个数组,则还有另一个问题: 在.NET中合并两个数组

如果您正在寻找直接arrays合并替换,则没有。