如何读取文本文件中的数字,在列表框展示并实现统计与求和?
实现读取数字文件并展示、统计的功能
你的需求很明确,我帮你完善了代码,解决读取数字到ListBox、统计总数和求和的问题,来看下完整实现:
完整代码
private void readFileButton_Click(object sender, EventArgs e) { try { // 打开文件选择对话框,确认用户选择了文件 if (openFileDialog1.ShowDialog() == DialogResult.OK) { string filePathReader = openFileDialog1.FileName; string numbersFromFile; int totalCount = 0; double totalSum = 0; // 用double适配更多数字类型,也可根据需求换成int // 用using包裹StreamReader,自动释放文件资源 using (StreamReader infile = File.OpenText(filePathReader)) { // 清空ListBox,避免重复加载旧数据 listBoxNumbers.Items.Clear(); while (!infile.EndOfStream) { numbersFromFile = infile.ReadLine().Trim(); // 读取行并去除首尾空白字符 // 尝试转换为数字,避免非数字行导致崩溃 if (double.TryParse(numbersFromFile, out double number)) { // 将有效数字添加到ListBox展示 listBoxNumbers.Items.Add(number.ToString()); // 更新统计数据 totalCount++; totalSum += number; } else { // 可选:对非数字行给出提示,也可以直接跳过 MessageBox.Show($"行内容「{numbersFromFile}」不是有效数字,已跳过"); } } } // 弹出统计结果,也可以用Label控件展示在界面上 MessageBox.Show($"统计完成:\n数字总数:{totalCount}\n数字总和:{totalSum:F2}"); } } catch (Exception ex) { // 捕获异常并给出友好提示 MessageBox.Show($"读取文件时出错:{ex.Message}"); } }
关键细节说明
- 文件选择校验:增加了
DialogResult.OK判断,避免用户取消选择文件时程序执行后续逻辑出错 - 资源安全处理:用
using语句管理StreamReader,确保文件流自动关闭,不会造成资源泄漏 - 数字转换容错:使用
double.TryParse做安全转换,遇到非数字内容时不会崩溃,还能给出提示 - 统计逻辑集成:初始化计数和求和变量,每读取一个有效数字就同步更新统计值
- 界面体验优化:加载前清空ListBox,避免多次加载后数据重复堆积
这样就能同时满足你提出的两个需求啦~
内容的提问来源于stack exchange,提问作者Livingston Seagull
相关产品推荐
相关产品推荐

