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

从数组提取偶数时遇'(int[])': not all code paths return a value'错误求助

解决C#数组提取偶数时的返回值错误

错误根源

你遇到的'(int[])': not all code paths return a value错误,是因为方法声明要返回int[]类型,但代码中存在没有返回值的分支——比如当数组里没有偶数时,你的逻辑没提供对应的返回结果,或者return语句只写在循环内部,循环结束后没有兜底的返回。

两种可行实现方案

方案1:用Linq快速实现(最简洁)

借助Linq的Where筛选偶数,再转成数组,自动覆盖所有情况:

using System.Linq; // 必须引用此命名空间

public int[] ExtractEvens(int[] arr)
{
    return arr.Where(num => num % 2 == 0).ToArray();
}

调用示例:

int[] original = new int[] {4, 1, 2, 5, 6, 1, 3};
int[] evens = ExtractEvens(original);
// evens结果为 [4, 2, 6]

方案2:手动实现(理解底层逻辑)

如果不想依赖Linq,手动遍历数组收集偶数,最后返回结果数组:

using System.Collections.Generic; // 引用List所在命名空间

public int[] ExtractEvens(int[] arr)
{
    List<int> evenNumbers = new List<int>();
    foreach (int num in arr)
    {
        if (num % 2 == 0)
        {
            evenNumbers.Add(num);
        }
    }
    // 即使没有偶数,也会返回空数组,不会触发错误
    return evenNumbers.ToArray();
}

避免错误的关键

不管数组中有没有符合条件的偶数,方法都必须返回一个int[]类型的值——空数组也是合法的返回值,不能让任何代码分支走到没有return的情况。比如你之前尝试的return int[];是语法错误,正确的兜底返回可以是return new int[0];,或者用上面List转数组的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:01:13