You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#游戏开发:编写函数批量输出Dictionary键值对

解决方案

你可以编写一个专用的打印函数,通过遍历字典的键分组自动生成输出,彻底替代冗余的手动代码。以下是具体实现:

1. 添加打印函数

在Program类中新增一个静态方法,按你需要的格式输出字典内容:

static void PrintBoard(Dictionary<string, string> board)
{
    // 定义行前缀:a、b、c、d
    var rowPrefixes = new[] { "a", "b", "c", "d" };
    foreach (var prefix in rowPrefixes)
    {
        // 打印当前行的四个值
        for (int i = 1; i <= 4; i++)
        {
            string key = $"{prefix}{i}";
            Console.Write($"{board[key]} ");
        }
        // 打印当前行的键标签(修正了你原代码中b行的笔误)
        Console.WriteLine($" {prefix}1  {prefix}2  {prefix}3  {prefix}4");
    }
}

2. 替换手动输出代码

在Main方法里,把原来一堆Console.Write的代码删掉,直接调用这个函数:

// 替代所有手动输出的代码
PrintBoard(rutor);

3. 在while循环中使用

如果要在循环里重复打印最新状态,只需要在循环体内调用函数即可,字典值更新后会自动输出最新内容:

while (true)
{
    // 这里添加你的游戏逻辑,修改字典中的值
    // ...
    
    // 可选:清屏后重新打印,避免输出堆积
    Console.Clear();
    // 打印当前棋盘状态
    PrintBoard(rutor);
    
    // 这里添加循环退出条件
    // ...
}

额外说明

  • 函数通过自动生成键的方式,避免了手动逐个写键的冗余,后续如果要扩展棋盘(比如加e行、5列),只需要修改rowPrefixes数组和数字循环范围就行
  • 修正了你原代码中b行标签的笔误(原代码写的是b1 b1 b3 b3,应该是b1 b2 b3 b4)

内容的提问来源于stack exchange,提问作者21sili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:50:25