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

如何向List添加成员?C#代码无法添加数据求助

问题分析与修复

核心问题

你的代码存在几个关键错误,导致List始终为空:

  • List类型定义错误:你需要存储单个Member对象的List<Member>,但代码里写成了List<Member[]>(存储Member数组的列表)
  • 创建Member实例后,未将其添加到List中,仅实例化对象后就直接丢弃
  • 无效的data.ToList()调用:这行代码无任何实际作用,既不会修改data,也不会添加元素
  • 冗余的item数组:无需将roundData的内容复制到item,直接读取原数组即可

修复后的代码

private void btnSort_Click(object sender, EventArgs e)
{
    string[] roundData = File.ReadAllLines("D:\\sirslist\\data.txt");
    // 修正List类型为存储Member对象
    List<Member> data = new List<Member>();

    // 按步长14遍历,每次处理一个成员的14行数据
    for (int i = 0; i < roundData.Length; i += 14)
    {
        // 防止数组越界:如果剩余行数不足14,停止处理
        if (i + 13 >= roundData.Length) break;
        
        // 直接从roundData读取对应行,创建Member实例
        Member member = new Member()
        {
            BadgeNo = roundData[i],
            LastName = roundData[i + 1],
            MiddleInitial = roundData[i + 2],
            FirstName = roundData[i + 3],
            Nickname = roundData[i + 4],
            WifeName = roundData[i + 5],
            Address = roundData[i + 6],
            ZipCode = roundData[i + 7],
            Phone = roundData[i + 8],
            Email = roundData[i + 9],
            WeddingMonth = roundData[i + 10],
            BirthDate = roundData[i + 11],
            Employment = roundData[i + 12],
            Interests = roundData[i + 13],
        };
        // 将创建好的Member实例添加到List中
        data.Add(member);
    }
}

额外说明

  • 添加了数组越界检查:如果文件剩余行数不足14,会提前终止循环,避免报错
  • 简化了循环逻辑:用for循环按步长14遍历,比原有的while+for组合更简洁直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:43:29