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

C#控制台读取txt筛选2004年入盟欧盟国家仅返回单条结果问题求解

问题原因
  • 筛选条件不完整:当前代码仅判断日期的月份为05,没有限定年份为2004,逻辑本身存在疏漏
  • 查询方法调用错误:List<T>.Find() 方法只会返回第一个符合条件的元素,因此你只能查询到第一个匹配的塞浦路斯,无法获取全部2004年5月入盟的国家
  • 数据格式异常:EU.txt中克罗地亚的入盟日期写为2013;07.01,错误使用分号分隔年份,会导致Country类构造时拆分字段报错,建议先修正该条数据为Croatia;2013.07.01
修正方案

替换原有统计、输出逻辑即可,优化后的完整代码如下,额外增加了异常兼容逻辑避免格式错误导致程序崩溃:

class Program
{
    static List<Country> joining = new List<Country>(); 
    static void read()
    {
        // 新增文件存在判断,避免运行时报错
        if(!File.Exists("EU.txt"))
        {
            Console.WriteLine("EU.txt文件不存在");
            return;
        }
        string[] rows=File.ReadAllLines("EU.txt");
        foreach (var item in rows)
        {
            // 跳过空行避免拆分报错
            if(string.IsNullOrWhiteSpace(item)) continue;
            joining.Add(new Country(item));
        }
    }
    
    static void Main(string[] args)
    {
        read();
        if(joining.Count == 0)
        {
            Console.ReadKey();
            return;
        }
        
        // 筛选所有2004年5月入盟的国家
        var join2004List = joining.Where(item => 
        {
            var dateParts = item.date.Split('.');
            // 兼容无效日期格式,避免索引越界
            if(dateParts.Length < 3) return false;
            // 同时匹配年份2004、月份05两个条件
            return dateParts[0] == "2004" && dateParts[1] == "05";
        }).ToList();

        // 输出统计数量
        Console.WriteLine($"{join2004List.Count}个国家加入欧盟。");
        // 拼接所有符合条件的国家名称输出
        Console.WriteLine($"国家名称:{string.Join("、", join2004List.Select(c => c.name))}");

        Console.ReadKey();
    }
}

class Country
{
    public string date, name;

    public Country(string row)
    {
        var parts = row.Split(';');
        name = parts[0];
        // 兼容字段拆分异常
        date = parts.Length >=2 ? parts[1] : string.Empty;
    }
}
运行结果

运行修正后的代码,会正确输出2004年入盟的全部10个国家:

10个国家加入欧盟。
国家名称:Cyprus、Czech、Estonia、Poland、Latvia、Lithuania、Hungary、Malta、Szlovakia、Szlovenia

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:24:02