C# 合并数组或附加到数组

C# 合并数组或附加到数组,c#,arrays,C#,Arrays,在C语言中,我有三个数组,字符串[]数组1、2和3,它们都有不同的值。我很想用php做我能做的事情,那就是: $array=数组; $array[]。='some value' 在C中执行此操作的等效方法是什么?在C中,通常使用a而不是字符串[] 这将允许您编写列表。添加一些值并动态增长列表 请注意,如果需要,可以很容易地在列表和数组之间进行转换。List有一个构造函数,它接受任何IEnumerable,包括数组,因此您可以通过以下方式从数组生成列表: var list = new List&l

在C语言中,我有三个数组,字符串[]数组1、2和3,它们都有不同的值。我很想用php做我能做的事情,那就是:

$array=数组; $array[]。='some value'


在C中执行此操作的等效方法是什么?

在C中,通常使用a而不是字符串[]

这将允许您编写列表。添加一些值并动态增长列表

请注意,如果需要,可以很容易地在列表和数组之间进行转换。List有一个构造函数,它接受任何IEnumerable,包括数组,因此您可以通过以下方式从数组生成列表:

var list = new List<string>(stringArray);
var array = list.ToArray();

但是,这仅在需要阵列时才需要,例如使用第三方API。如果您知道要处理大小不同的集合,通常最好只使用列表而不使用数组。

您可以使用dinamic列表。你能行

列表TotalList=array1.ToList


然后,您可以totalist.AddRangearray2等等……

如果您只是想合并阵列

使用linq


您可以创建一个列表并向其中添加数组值,然后将该列表转换回数组

int[] array1 = { 1, 2, 3, 4, 5 };
int[] array2 = { 6, 7, 8, 9, 10 };

// Create new List of integers and call AddRange twice
var list = new List<int>();
list.AddRange(array1);
list.AddRange(array2);

// Call ToArray to convert List to array
int[] array3 = list.ToArray();
列表或LINQ可能是最简单的解决方案,但您也可以采用老式的方式:

// b1 is now 5 bytes
byte[] b1 = Get5BytesFromSomewhere();

// creating a 6-byte array
byte[] temp = new byte[6];

// copying bytes 0-4 from b1 to temp
Array.copy(b1, 0, temp, 0, 5);

// adding a 6th byte
temp[5] = (byte)11;

// reassigning that temp array back to the b1 variable
b1 = temp;
使用linq轻松:

int[] array1 = { 1, 2, 3, 4, 5 };
int[] array2 = { 6, 7, 8, 9, 10 };
int[] array3 = { 3, 4 ,5, 9, 10 };

var result = array1
    .Concat(array2)
    .Concat(array3)
    .ToArray();

如果您想轻松更改尺寸,最好使用它,如果您确实需要使用数组,例如,如果您从某个第三方库获取数组,并且需要将结果作为数组发送回该库,则列表构造函数可以获取数组,也可以获取List.AddRange,完成后,可以调用List.ToArray@这是真的。大多数情况下,当改变语言时,这不是一个问题。通常更多的是学习每种语言和框架如何处理基础知识,但是,是的,在这两种语言和框架之间进行转换相当简单。
int[] array1 = { 1, 2, 3, 4, 5 };
int[] array2 = { 6, 7, 8, 9, 10 };
int[] array3 = { 3, 4 ,5, 9, 10 };

var result = array1
    .Concat(array2)
    .Concat(array3)
    .ToArray();