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

C#是否有与Elixir的cond语句功能类似的多条件判断语法?

C# 8.0及更高版本支持使用switch表达式实现和Elixir cond完全对等的多布尔条件判断逻辑,无需编写冗余的嵌套if/else。

对应你给出的Elixir示例,等价的C#实现如下:

int guess = 46;
int numberOfGuesses = 3;

var output = (numberOfGuesses, guess) switch
{
    ( > 5, _ ) => "Too many guesses! You lose.",
    ( _, 46 ) => "You guessed 46!",
    ( _, 42 ) => "You guessed 42!",
    _ => "I give up."
};

Console.WriteLine(output);

运行结果和Elixir版本完全一致:

You guessed 46!

这种实现和Elixir cond的特性完全匹配:

  • 各分支判断条件可以完全独立,支持不同变量的混合校验,不需要绑定同一个判断对象
  • 末尾的_通配符对应cond里的true兜底分支,所有前置条件未命中时自动触发
  • 整体为表达式结构,可以直接将判断结果赋值给变量,代码结构紧凑,没有多层if/else的缩进冗余问题

如果使用低于8.0的C#版本,也可以用传统if/else if结构实现同等逻辑,仅写法相对繁琐:

int guess = 46;
int numberOfGuesses = 3;
string output;

if (numberOfGuesses > 5)
{
    output = "Too many guesses! You lose.";
}
else if (guess == 46)
{
    output = "You guessed 46!";
}
else if (guess == 42)
{
    output = "You guessed 42!";
}
else
{
    output = "I give up.";
}

Console.WriteLine(output);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:45:07