【发布时间】:2015-08-23 01:52:14
【问题描述】:
我只是想知道,有没有更好的方法来初始化 c# 多维对象数组(引用类型)。
这是我的代码:
Board = new Field[BoardHeight, BoardWidth];
for (int i = 0; i < BoardHeight; i++)
{
for (int j = 0; j < BoardWidth; j++)
{
Board[i, j] = new Field();
}
}
如果我可以摆脱 for/for 循环并用单行替换它?那太好了。
【问题讨论】:
-
应该在Code Review上询问。
-
方法看起来不错。为什么不用它制作一个实用方法并在需要时使用它?
-
你不能在一个平面循环中循环并初始化数组吗?我认为
Length会暴露数组的总长度,你可以在Rank上使用模数来找出你需要的索引 -
@Asad 你可以(即
for (var i = 0; i < BoardHeight* BoardWidth; i++) { Board[i/BoardWidth, i%BoardWidth] = new Field();})但它的可读性较差(而且不太可能更快) -
@AlexeiLevenkov 是的,但是它可以很容易地将其提取到任意等级数组的扩展方法中。顺便说一句,你不需要乘法,我认为 .Length 会起作用。
标签: c# .net arrays multidimensional-array