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

调用带匿名Action的ForEach编译报CS7036错误,原因是什么?

错误原因解析及解决方法

这个报错的核心问题是你混淆了C#中ForEach方法的正确调用方式:

  • C#的数组类型(T[])没有自带实例方法ForEach,你试图用arr.ForEach(...)调用的方法根本不存在。
  • 编译器之所以报出error CS7036,是因为它在尝试匹配可能的方法时,误以为你在调用某个需要action参数的方法,但实际上你调用的方法本身就不存在,所以会提示你缺少对应参数(这是编译器的误判,但根源是方法调用方式错误)。

两种正确的解决方式:

  1. 使用Array类的静态ForEach方法
    这是官方针对数组设计的遍历方法,需要把数组作为第一个参数传入:

    var arr = new[] { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 };
    Array.ForEach(arr, x => Console.WriteLine(x));
    
  2. 将数组转为List<T>后调用实例ForEach方法
    如果你更习惯实例方法的写法,可以先把数组转换成List<T>(需要引用System.Linq):

    using System.Linq; // 记得添加这个引用
    
    var arr = new[] { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 };
    arr.ToList().ForEach(x => Console.WriteLine(x));
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:23:15