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

如何用C# List实现猜数字游戏并记录展示所有用户输入

解决C#用List记录猜数字游戏输入的问题

嘿,我看到你的问题啦!核心问题其实很简单——你把List<int>的创建放在了for循环内部,每次循环都会新建一个空的List,所以之前输入的数字根本没被保留下来,最后自然只能看到最后一次输入的内容。

快速修复思路

把List的声明移到for循环外面,这样整个游戏过程中都会用同一个List来记录所有输入的数字,每次输入后只需要调用InsertedNumbers.Add(c)就可以完成记录了。

另外你的代码里有两处重复打印List的逻辑,其实保留一个就够;原来的循环条件i <= 10会导致多执行一次,改成i < 10更贴合10次尝试的设定,我一起帮你调整了。

修改后的完整代码

static void Main(string[] args) {
    Random rnd = new Random();
    int b = rnd.Next(1, 100);
    // 把List声明移到循环外,确保全程共用一个集合
    List<int> InsertedNumbers = new List<int>();
    int NumberOfTries = 1;
    
    Console.WriteLine("Guess number from 1 to 100. You have 10 tries.");
    
    for (int i = 0; i < 10; i++) {
        Console.Write("\nGuess number: ");
        int c = Convert.ToInt32(Console.ReadLine());
        InsertedNumbers.Add(c); // 每次输入后添加到List中
        
        if (c == b) {
            Console.WriteLine($"Bravo. You had {NumberOfTries} tries.");
            Console.WriteLine("Your guesses were:");
            foreach (var item in InsertedNumbers) {
                Console.WriteLine(item);
            }
            break;
        } else if (c < b) {
            Console.WriteLine($"No. My number is larger than {c}");
            NumberOfTries++;
        } else if (c > b) {
            Console.WriteLine($"No. My number is smaller than {c}");
            NumberOfTries++;
        }
    }
    
    // 循环正常结束说明用完了10次机会,展示所有输入
    if (InsertedNumbers.Count == 10) {
        Console.WriteLine("\nYou tried 10 times. Game is over!");
        Console.WriteLine("Your guesses were:");
        foreach (var item in InsertedNumbers) {
            Console.WriteLine(item);
        }
    }
    
    Console.ReadLine();
}

额外小提示

  • List的优势确实如你所说,不用预先指定长度,能自动扩容存储任意次数的输入(只要在你设定的尝试限制内),比数组灵活太多。
  • 用字符串插值$"内容{变量}"代替字符串拼接,代码可读性会更好,比如我修改后的提示语句就是用了这种写法。

内容的提问来源于stack exchange,提问作者Nikola Kaljevic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:55:09