我有一个long[][]
类型的锯齿状数组。
这可能很简单,但是我似乎无法弄清楚如何将值添加到数组的末尾。
我是否需要先调整大小以及如何实际添加项目?
答案 0 :(得分:1)
锯齿状的数组基本上是数组的数组。 您需要调整要将元素添加到的数组的大小:
var array = new long[][]
{
new long[]{1},
new long[]{2,3}
};
// change existing element
array[1][0]=0;
// add row & fill it
Array.Resize(ref array, 3);
Array.Resize(ref array[2], 1);
array[2][0]=5;
// resize existing row
Array.Resize(ref array[1], 3);
array[1][2]=6;
当然:如果您经常需要调整数组大小,则最好使用List<List<T>
或Dict<long, List<long>>
,除非有特定的原因需要使用数组(但即使这样,总会有.ToArray()
)。
使用锯齿状数组并调整其大小的一种用例是具有许多元素的数组的访问性能。
答案 1 :(得分:0)
在C#中,锯齿状数组也称为“数组数组”,因为其元素是数组。锯齿形数组的元素大小可以不同。
int[][] arr = new int[2][];// Declare the array
int[] arr1 = new int[4];
int[] arr2 = new int[6];
//user input for arr1
for (int i = 0; i < arr1.Length;i++ )
{
arr1[i] = int.Parse(Console.ReadLine());
}
// user input for arr2
for (int i = 0; i < arr2.Length; i++)
{
arr2[i] = int.Parse(Console.ReadLine());
}
arr[0] = arr1;
arr[1] = arr2;
// Traverse array elements
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j < arr[i].Length; j++)
{
System.Console.Write(arr[i][j] + " ");
}
System.Console.WriteLine();
}
锯齿状数组可以在同一行代码中声明和初始化
int [] [] arr =新的int [2] [] {
new int [] {11,21,56,78},
new int [] {2,5,6,7,98,5}
};
相同的内容适用于'long'