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

如何在C#中添加用户输入值到集合并计算最大最小值?

解决方案

问题分析

你的代码存在几个关键问题:

  1. 数组初始化后用+=赋值,这会把输入的数字和数组初始的0相加,而非替换成输入值;
  2. C#的数组是固定长度的,没有Append方法,无法动态添加元素;
  3. 缺少System.Linq命名空间,导致Min()和Max()方法无法调用;
  4. 引用了不必要的System.Data命名空间。

方案1:修正数组写法(固定输入数量)

如果确定要输入5个数,直接修正数组赋值逻辑并添加正确的命名空间即可:

using System;
using System.Linq; // 必须引入才能使用Min/Max扩展方法

namespace ConsoleMinMax
{
    class MinMaxValue
    {
        static void Main(String[] args)
        {
            int[] tableWithValue = new int[5]; // 初始化长度为5的空数组
            int i = 0;

            for (; i < 5; i++)
            {
                Console.WriteLine("Enter a number:");
                int number = Convert.ToInt32(Console.ReadLine());
                tableWithValue[i] = number; // 直接赋值,替换数组元素默认值
            }

            Console.WriteLine("Min value: " + tableWithValue.Min());
            Console.WriteLine("Max value: " + tableWithValue.Max());
        }
    }
}

方案2:用List<int>动态添加元素(类似Python列表的Append)

如果需要动态添加元素(不确定输入数量),推荐使用List<int>,它的Add方法和Python的Append逻辑一致:

using System;
using System.Collections.Generic; // 引入命名空间才能使用List
using System.Linq;

namespace ConsoleMinMax
{
    class MinMaxValue
    {
        static void Main(String[] args)
        {
            List<int> numbers = new List<int>(); // 初始化空的动态列表

            Console.WriteLine("Enter numbers (type 'exit' to stop input):");
            string input;
            while ((input = Console.ReadLine()) != "exit")
            {
                // 用TryParse处理非数字输入,避免程序崩溃
                if (int.TryParse(input, out int number))
                {
                    numbers.Add(number); // 动态添加元素,等同于Python的Append
                }
                else
                {
                    Console.WriteLine("Invalid input, please enter a valid number or 'exit'.");
                }
            }

            // 确保列表不为空再计算最值
            if (numbers.Count > 0)
            {
                Console.WriteLine("Min value: " + numbers.Min());
                Console.WriteLine("Max value: " + numbers.Max());
            }
            else
            {
                Console.WriteLine("No valid numbers were entered.");
            }
        }
    }
}

关键知识点

  • C#数组是固定长度结构,一旦创建无法改变大小,适合已知元素数量的场景;
  • List<T>是动态集合,支持随时添加/删除元素,Add方法对应Python的Append;
  • Min()和Max()是Linq扩展方法,必须引入System.Linq命名空间才能使用;
  • 使用int.TryParse替代Convert.ToInt32可以提升程序健壮性,处理用户的无效输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:31:06