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

C# 按数值范围过滤List<int>时输出集合类型名的问题求解

问题修复方案

你的代码存在两处核心错误,修改后即可正常运行:

  • 范围判断逻辑错误:你用了||或运算符,只要满足大于下限/小于上限任意一个条件就会触发,和“数值处于上下限之间”的要求完全不符,需要换成&&与运算符,同时建议加上等于号适配包含上下限的常见需求,最终判断条件应为number >= lownum && number <= highnum
  • 输出对象错误:你在遍历的时候把整个numbers列表对象传入了Console.WriteLine,所以控制台打印的是List的类型描述,要输出单个符合条件的元素,应该传入当前遍历到的number变量。

修复后可直接运行的代码

using System;
using System.Collections.Generic;
namespace exercise_69
{
    class Program
    {
        public static void Main(string[] args)
        {
            List<int> numbers = new List<int>();
            // 录入数值直到输入-1停止
            while (true)
            {
                int input = Convert.ToInt32(Console.ReadLine());
                if (input == -1)
                {
                    break;
                }
                numbers.Add(input);
            }
  
            Console.WriteLine("from where");
            int lownum = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("where to");
            int highnum = Convert.ToInt32(Console.ReadLine());

            // 遍历输出符合范围的数值
            foreach(int number in numbers)
            {
                if(number >= lownum && number <= highnum)
                {
                    Console.WriteLine(number);
                }
            }          
        }
    }
}

按数值范围删除列表元素的方法

如果你需要直接把列表中不在范围内的元素删除,可以使用List自带的RemoveAll方法,不需要手动遍历判断删除,示例代码如下:

// 直接移除所有小于下限或大于上限的元素
numbers.RemoveAll(n => n < lownum || n > highnum);
// 移除后直接遍历输出剩下的元素即可
foreach(var num in numbers)
{
    Console.WriteLine(num);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:36:02