首页 > 解决方案 > 如何在 C# 中创建具有不同名称的数组?

问题描述

我目前正在开发一个包含 25 个块的游戏(控制台应用程序),即 5x5。所有块都在一个列表(5x5)中,女巫是最后的关卡。我不想声明所有数组。我想在女巫中编写一个方法,数组将被声明但名称会改变。
例如:
- ac_Array_1
- ac_Array_2

    static void Level()
    {
        List<char[,]> ol_Level = new List<char[,]>();

    }
    static void Spielblock()
    {
        int i_Stelle = 1;
        string s_ArrayName = "ac_Chunk_" + i_Stelle;
        i_Stelle++;
        char[,] /*NAME*/ = new char[5, 5];
    }

标签: c#arraysvariables

解决方案


尝试这样的事情:

int numOfLevels = 5;

Dictionary<string, char[,]> ol_Level = Enumerable
    .Range(1, numOfLevels)
    .ToDictionary(k => $"ac_Chunk_{k}", v => new char[5,5]);

ac_Chunk = ol_Level["ac_Chunk_1"];//char[5,5]

for (int i_Row = 0; i_Row < ac_Chunk.getLength(0); i_Row++) 
{ 
    for (int i_column = 0; i_column < ac_Chunk.getLength(1); i_column++) 
    { 
        ac_Chunk[i_Row, i_column] = '#'; 
    } 
} 

...

级别:

ac_Chunk_1, ac_Chunk_2, ac_Chunk_3, ac_Chunk_4, ac_Chunk_5

nb 使用 System.Linq 和 c# 6.0 $ 插值


推荐阅读