gpt4 book ai didi

c# - 如何初始化二维数组中的对象?

转载 作者:行者123 更新时间:2023-11-30 14:45:07 28 4
gpt4 key购买 nike

我得到了一个二维数组

BoardTile tiles[,];

然后在 Init(Point size) 中设置它的大小:

tiles = new BoardTile[size.X, size.Y];

以及如何初始化所有这些元素,因为它不使用默认的 BoardTile() 构造函数。它只是分配 null

foreach(BoardTile t in tiles) t = new BoardTile()

不起作用。当我尝试打电话时

foreach(BoardTile t in tiles) t.anything()

我得到 NullReferenceException

最佳答案

您可以尝试嵌套循环:

  for (int i = 0; i < titles.GetLength(0); ++i)
for (int j = 0; j < titles.GetLength(1); ++j)
titles[i, j] = new BoardTile();

编辑:如果嵌套循环太复杂且不可读,请尝试切换到锯齿状数组,即数组的数组 - BoardTile tiles [][]; - 来自 2D 一个 BoardTile tiles[,],例如

   // created and initialized jagged array
BoardTile tiles[][] = Enumerable
.Range(size.Y) // size.Y lines
.Select(y => Enumerable // each line is
.Range(size.X) // size.X items
.Select(x => new BoardTile()) // each of them is BoardTile()
.ToArray()) // materialized as array
.ToArray(); // all arrays are array of array

关于c# - 如何初始化二维数组中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55140666/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com