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

C#计算double数组奇数索引元素和时报IEnumerable转double错误如何解决

报错原因

你当前的实现逻辑中,GroupBy会生成「索引为奇数」「索引为偶数」两个分组,后续Select(g => g.Sum(y => y.Value))会返回包含两个求和结果的IEnumerable<double>集合,自然无法隐式转换为方法要求返回的double类型。

修复方案

方案1:适配原有逻辑调整

如果要保留你现用的分组思路,需要额外筛选出奇数索引分组的求和结果:

public static double EvaluateSumOfElementsOddPositions(double[] inputData)
{
    var sum = inputData
        .Select((v, i) => new { Group = (i % 2 != 0), Value = v })
        .GroupBy(x => x.Group)
        // 筛选奇数索引的分组,直接取该分组的求和结果
        .FirstOrDefault(g => g.Key)?
        .Sum(y => y.Value) ?? 0;
    return sum;
}

注:加空值判断和默认值0是为了兼容数组为空/无奇数索引元素的边界场景

方案2:简化实现(更推荐)

完全不需要分组操作,直接用带索引的Where过滤出奇数索引的元素再求和即可,逻辑更简洁性能更好:

public static double EvaluateSumOfElementsOddPositions(double[] inputData)
{
    return inputData.Where((value, index) => index % 2 != 0).Sum();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:36:02