0

我在处理部分数组时遇到问题,我需要在控制台程序中创建一个三维数组,该程序开始为空,并且在要求用户输入后会有用户分配的值。它不需要在程序初始化之后持续存在。

我已经创建了一些数组,这些数组已经存在可以调用的值,但我从来不需要创建一个数组来获取可以调用的用户值。

4

3 回答 3

1

您可以通过在括号内指定大小来创建特定大小的数组,然后您可以稍后填写数据。这是具有用户指定大小的三维数组的示例。

Console.WriteLine("Enter length of arrays (three dimensions, comma separated)");
string line = Console.ReadLine();
string[] stringDimensions = line.Split(',');
int[] intDimensions = stringDimensions.Select(s => Convert.ToInt32(s)).ToArray();

var array = new string[intDimensions[0],intDimensions[1],intDimensions[2]];

for (int i = 0; i < array.GetLength(0); i++)
{
    for (int j = 0; j < array.GetLength(1); j++)
    {
        for (int k = 0; k < array.GetLength(2); k++)
        {
            array[i, j, k] = String.Format("{0}.{1}.{2}", i, j, k);
        }
    }
}
于 2013-08-28T23:05:24.683 回答
0

所有数组一开始都是空的,即数组中的所有项目都设置为类的默认值。例如,如果它是一个字符串数组,则所有项目都以null.

如果它是 的数组int,则所有项目都以 0 开头,因此您宁愿想要一个数组,int?以便所有项目都以 开头null

如果空,你的意思是零项目,那么你不应该使用数组,你应该使用List<T>. 他们从零项目开始,然后您添加项目来填充它。

于 2013-08-28T23:05:14.893 回答
-1

尝试使用ArrayList

ArrayList mainArrayList = new ArrayList();

//creating a three dimensional arraylist
mainArrayList.Add(new ArrayList());
mainArrayList.Add(new ArrayList());
mainArrayList.Add(new ArrayList());

(mainArrayList[0] as ArrayList).Capacity = userSpecifiedSizeX;
(mainArrayList[1] as ArrayList).Capacity = userSpecifiedSizeY;
(mainArrayList[2] as ArrayList).Capacity = userSpecifiedSizeZ;
于 2013-08-29T07:48:12.213 回答