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

C#中用列表求文本框输入总和并显示到Label?当前代码仅显最后值

问题解决:文本框输入构建double列表总和无法正确显示

问题原因

  • 每次执行代码时,List<double> Val = new List<double>();都会创建全新的空列表,仅添加当前输入的expenses.Amount,因此Val.Sum()的结果就是单次输入的值。
  • expenses.total = 0.0;每次都会将总和重置为0,之后再加上当前列表的总和,最终结果自然只会保留最后一次输入的值。

解决方案

将存储数值的列表和总和变量声明为类的成员变量,避免每次处理输入时重新初始化,确保数据能持续累加。

修改后的代码示例

首先在类的作用域内声明成员变量(不要放在处理输入的方法里):

// 类成员变量,仅初始化一次
private List<double> _expenseValues = new List<double>();
private double _total = 0.0;

然后在处理输入的方法中编写逻辑:

// 假设已将文本框输入转换为double类型并赋值给expenses.Amount
_expenseValues.Add(expenses.Amount);
// 直接计算列表的总和
_total = _expenseValues.Sum();
// 显示到Label控件
Display.Text = _total.ToString();

另一种写法(如果保留expenses类的total属性)

如果需要继续使用expenses.total,同样要避免每次重置它,直接用列表总和赋值:

// 类成员变量
private List<double> _valList = new List<double>();

// 输入处理方法内
_valList.Add(expenses.Amount);
expenses.total = _valList.Sum();
Display.Text = expenses.total.ToString();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:40:57