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

WPF应用开发问题:多行数值输入处理后仅输出最后结果

问题原因

你的代码每次循环都直接将计算结果赋值给outputBox.Text,这会覆盖上一次循环的内容,最终只显示最后一个数值的计算结果。

解决方法

可以用StringBuilder拼接所有计算结果,最后一次性赋值给outputBox.Text,同时保留换行格式。另外建议用Environment.NewLine分割输入文本(适配不同系统换行符),并对分割后的字符串做Trim处理,避免空格影响解析:

private void mathClick(object sender, RoutedEventArgs e)
{
    var resultBuilder = new StringBuilder();
    // 适配不同系统换行,同时忽略空行
    foreach (var numStr in inputBox.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
    {
        var trimmedNum = numStr.Trim();
        if (double.TryParse(trimmedNum, out double value))
        {
            resultBuilder.AppendLine(Convert.ToString(value * 2));
        }
    }
    // 去除最后多余的换行符
    outputBox.Text = resultBuilder.ToString().TrimEnd();
}
额外优化说明
  • StringSplitOptions.RemoveEmptyEntries可以跳过输入中的空行,避免无效解析操作
  • 对分割后的字符串做Trim(),能处理输入时不小心加入的前后空格,防止解析失败
  • 使用StringBuilder比直接用+=拼接字符串更高效,尤其在输入数值较多时

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:40:41