c#2.0-多维数组主义c#

本文关键字:数组 c#2 | 更新日期: 2023-09-27 17:57:50

我想创建一个多维ArrayList-我不知道大小,应该在运行时决定。

我将如何做到这一点,以及如何访问它?

它将是一个整数数组。

c#2.0-多维数组主义c#

使用

List<List<Integer>>

列表本身并不是多维的,但你可以用它来存储列表,然后它可以存储整数,实际上就像一个多维数组。然后,您可以访问以下元素:

// Get the element at index x,y
int element = list[x][y];

用尺寸为x和y的初始元素填充列表:

for (int i=0; i<x; i++)
{
    // Have to create the inner list for each index, or it'll be null
    list.Add(new List<Integer>());
    for (int j=0; j<y; j++)
    {
        list[i].Add(someValue); // where someValue is whatever starting value you want
    }
}

ArrayList不是泛型的,因此您无法指定它将包含什么。我建议使用常规的通用列表:

List<List<int>>

对于访问,只需通过索引引用即可:

List<List<int>> myList = new List<List<int>>();
int item = myList[1][2];

如果创建后不需要更改大小,也可以使用array.CreateInstance方法创建的2D数组,而不是潜在的锯齿状列表。

int[,] arrayOfInts = (int[,])Array.CreateInstance(typeof(int), 4, 5);
arrayOfInts[0,0] = 5;
Console.WriteLine(arrayOfInts[0,0]);
arrayOfInts[0,4] = 3;
Console.WriteLine(arrayOfInts[0,4]);