锯齿状2D阵列

时间:2014-04-02 22:13:06

标签: c# arrays jagged-arrays

我试图创建一个具有以下结构的数组

D
C C
B B B
A A A A

这将是N x N但对角分割。最初,我所知道的只是底线:

string[,] table = new string[n,];

我如何构建这个结构,以便当我到达下一行时,我可以声明它有多少元素?会不会像以下那样:

for(int i = 0; i <= n; i++) {
    table[i] = new string[--n]
}

1 个答案:

答案 0 :(得分:2)

[,]语法创建multidimensional arrays,而非jagged arrays。对于后者,您需要这样做:

int n = 4;
string[][] table = new string[n][];
for (int i = 0; i < n; i++)
    table[i] = new string[n-i];

顺便说一下。你真的不希望在条件为n(或i < n)的循环中循环时递减i <= n