gpt4 book ai didi

c# - 用空元素初始化多维列表的好方法?

转载 作者:行者123 更新时间:2023-12-02 22:08:07 25 4
gpt4 key购买 nike

对于我制作的拼贴游戏,我选择使用 4D 嵌套列表系统。

  • 第一维 - 图层(背景和前景,但可能还有其他)
  • 第二维和第三维 - 二维网格,基于图 block 的游戏的经典之作
  • 第四维 - 网格中的瓷砖包含的对象(例如,多个项目可以掉落在 rougelike 中的同一地砖上

我有确切的层数以及 map 的高度和宽度。用这些数字初始化前三个维度然后用空对象列表填充每个“tile”(即第四个维度)的好方法是什么?

这里有一些代码可以更好地说明它:

List<List<List<List<GameObject>>>> Grid;
public readonly int Layers, Height, Width;

最佳答案

您可以使用 linq 执行此操作:

List<List<List<List<GameObject>>>> Grid;
Grid = Enumerable.Range(0, Layers).Select(l =>
Enumerable.Range(0, Height).Select(h =>
Enumerable.Range(0, Width).Select(w =>
new List<GameObject>()).ToList()).ToList()).ToList();

相同的代码可用于生成数组数组(或任何更灵活的组合以满足您的需求),即:

List<GameObject>[][][] Grid;
Grid = Enumerable.Range(0, Layers).Select(l =>
Enumerable.Range(0, Height).Select(h =>
Enumerable.Range(0, Width).Select(w =>
new List<GameObject>()).ToArray()).ToArray()).ToArray();

关于c# - 用空元素初始化多维列表的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15809450/

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