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

如何在C#的lambda表达式中使用if语句?含方法转换需求

C# 自定义方法转Lambda表达式方案

你提供的方法核心逻辑是判断输入整数是否等于0,原方法中的if-else分支完全可以直接替换为i == 0的布尔表达式结果,不需要额外分支返回,对应有两种常用Lambda写法:

  • 最简表达式体写法(推荐,和原方法逻辑完全等价)
// 编译器可自动推断参数类型时可以省略参数类型声明,匹配Func<int, bool>委托类型
i => i == 0
// 需要显式声明参数类型的写法
(int i) => i == 0
  • 保留原if结构的语句体写法(仅作结构参考,无简化必要)
i =>
{
    if(i == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

实际使用示例

你可以直接将该Lambda传入需要对应委托的场景,比如过滤集合中的0值:

int[] numArray = new int[] { 2, 0, 5, 0, 9 };
// 筛选所有值为0的元素
var zeroItems = numArray.Where(i => i == 0).ToList();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:15:07