在C#中初始化int[][,]数组

3

我该如何初始化这个:

public const int[][,] Map = ...

我希望能做到像这样的事情:
public const int[][,] Map = {
    { // Map 1
        {1, 1, 1, 1},
        {1, 1, 1, 1},
        {1, 1, 1, 1},
        {1, 1, 1, 1},
    },
    { // Map 2
        {1, 1, 1, 1},
        {1, 0, 0, 1},
        {1, 0, 0, 1},
        {1, 1, 1, 1},
    },
    // etc.
};

我不想创建一个 int[,,] Map,因为我还想在其他地方做:

loader.Load(Map[map_numer]); // Load method recieve an int[,]

3
FYI: "const" 意味着 "是在编译时确定的数字或字符串"。 "readonly" 意味着 "该字段只能初始化一次,之后就不会再改变"。请注意,如果一个 readonly 字段包含一个数组,则该字段不能被更改以引用其他数组,但是可以更改数组元素;如果您希望数组元素不可更改,则考虑使用另一种数据结构,如 ReadOnlyCollection。 - Eric Lippert
1个回答

10
int[][,] a = new int[][,]
{
    new int[,]
    {
        {1, 1, 1, 1},
        {1, 1, 1, 1},
        {1, 1, 1, 1},
        {1, 1, 1, 1},

    },
    new int[,]
    {
        {1, 1, 1, 1},
        {1, 0, 0, 1},
        {1, 0, 0, 1},
        {1, 1, 1, 1},
    }
};

谢谢!它可以工作,但是Map不能是const(如果Mapconst,编译器会抛出错误) - Lucas Gabriel Sánchez
readonly。好的!我是C#的新手,从来没有见过readonly关键字,下次要记住了。 - Lucas Gabriel Sánchez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接