在C#中,我有三个数组,string[] array1
,2和3,它们都有不同的值。我很乐意在php中做我能做的事情:
$array = array();
$array[] .= 'some value';
在C#中执行此操作的方法是什么?
答案 0 :(得分:7)
在C#中,您通常使用List<string>
代替string[]
。
这将允许您编写list.Add("some value")
并动态“增长”列表。
请注意,如果需要,可以轻松地在列表和数组之间进行转换。 List<T>
有一个构造函数,它接受任何IEnumerable<T>
,包括一个数组,因此您可以通过以下方式从数组中创建一个列表:
var list = new List<string>(stringArray);
您可以通过以下方式将列表转换为数组:
var array = list.ToArray();
只有在需要阵列时才需要这样做(例如使用第三方API)。如果你知道你将使用不同大小的集合,那么通常最好总是坚持List<T>
而不是使用数组。
答案 1 :(得分:2)
您可以创建一个列表并向其中添加数组值,然后将该列表转换回数组。
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();
答案 2 :(得分:0)
您可以使用动态列表List<string>
。你可以做到
List<string> TotalList = array1.ToList();
然后你可以TotalList.AddRange(array2)
等等......
答案 3 :(得分:0)
答案 4 :(得分:0)
List<T>
或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;
答案 5 :(得分:0)
简单使用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();