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

C#实现整数列表绝对值求和功能返回结果错误是什么原因

代码问题原因及修复方案

问题根因

  • Math.Abs() 方法执行后会返回传入数值的绝对值,并不会修改传入的参数本身,你当前代码中仅调用了该方法但未接收其返回值,这行代码没有任何实际效果。
  • C#中的int属于值类型,foreach循环中的item是列表中对应元素的临时副本,就算你给item赋值,也不会修改原始List集合中的元素,你传入sum方法的还是存储着-1、-2、-3的原列表,求和后自然得到-6。

修复方案

你可以选择以下任意一种方式修改代码,运行后都能得到预期结果6:

方案1:直接遍历累加绝对值,不需要单独调用sum方法

public static int sumAbsolute(List<int> list)
{
    int sum = 0;
    foreach (var item in list)
    {
        sum += Math.Abs(item);
    }          
    return sum; 
}

方案2:复用已有的sum方法,先生成存储绝对值的新列表再传入

public static int sumAbsolute(List<int> list)
{
    List<int> absoluteList = new List<int>();
    foreach (var item in list)
    {
        absoluteList.Add(Math.Abs(item));
    }          
    return sum(absoluteList); 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:06:08