如何向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
相关产品推荐
相关产品推荐

