【发布时间】:2020-01-05 02:44:49
【问题描述】:
我一直在尝试在我的二维数组网格中创建一个位置列表,其中网格的值是某个数字,但我似乎无法正确理解代码的语法
int[,] Field = new int[n,n];
List<int[,]> lijst = new List<int[,]>();
for (int p = 0; p < n; p++)
{
for (int q = 0; q < n; q++)
{
Field[p, q] = 0;
lijst.Add(?????);
}
}
我似乎无法找到在 ???? 位置输入的内容 因为 [p,q] 似乎不起作用, (p,q) 也不起作用
编辑: 抱歉,字段是二维数组网格的名称。
编辑 2: 我将网格中的所有值都设置为 0,因为如果我想读取网格,我想知道在哪里放置东西,例如当它为 0 时它是空的,但是当它是 1 或 2 时它得到一个石头放在里面。我想写一个方法来扫描网格中哪些地方是空的,以便它返回一个地方列表而不是值
【问题讨论】:
-
对于给定的
n,您的预期输出是什么?Field的目的是什么? -
如果您希望
lijst成为行/列坐标对的列表,那是错误的数据类型。你想要var coords = new List<Tuple<int, int>>();像这样添加坐标对:coords.Add(new Tuple<int, int>(p, q));或者如果你在 winforms 或定义了Point的东西中,请接受 TheGeneral 的建议并使用它。 -
或
List<Point> -
为什么要将
Field中的每个值都设置为零? -
如果你只想添加 [p,q] 就这样吧,
lijst.Add(new int[p,q]);
标签: c# list multidimensional-array