C#以编程方式初始化多维数组

时间:2014-01-10 14:46:34

标签: c# multidimensional-array

我正在尝试创建一个这样的数组:

3,100,21,0
0,100,17,22
9,80,9,44

等。我需要在for循环中执行此操作,我计算不同的值。在设计时未设置长度(行数)。可能是1,可能是500等。

我怀疑这很容易但是......?

该计算如何运作?我不确定这是怎么相关的?我的意思是,行数是在运行时计算的,第一个值来自排序列表;第二个值是固定的(在运行时),除了其中一个不是; taht是,第二个值都相同但只有一个;第三个值在函数中计算,第四个值是算术值,总和。

设计时间而不是运行时间。

罗恩

2 个答案:

答案 0 :(得分:1)

您可以在运行时决定数组的大小,但是一旦创建它,​​它将变为不可变的,并且您将无法更改维度的大小。

int z = ... ;
int[,] array = new int[get1stDimensionLength(), z];
// programmatically fill the array
for (int i = 0; i < array.GetLength(0); i++) {
    for (int j = 0; j < array.GetLength(1); j++) {
        array[i,j] = 18;
    }
}

答案 1 :(得分:0)

你可以使用像这样的通用列表

 public struct MyArray<T1> 
{
        public void Init (T1 f, T1 s, T1 th, T1 fo)
        {
            First = f;
            Second = s;
            Third = th;
            Forth = fo;
        }
        public T1 First { get; set; }
        public T1 Second { get; set; }
        public T1 Third { get; set; }
        public T1 Forth { get; set; }

}

在这里你可以在编译时设置一个大小不确定的数组

 List<MyArray<Int32>> list = new List<MyArray<int>>();