Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不使用if语句的情况下找到哪个条件为真_C#_Loops_If Statement - Fatal编程技术网

C# 如何在不使用if语句的情况下找到哪个条件为真

C# 如何在不使用if语句的情况下找到哪个条件为真,c#,loops,if-statement,C#,Loops,If Statement,我有两个条件 我想知道的是哪个条件是真的,两个条件都是真/假,或者只有一个条件是真的 问题是如果我使用if语句,它会增加代码量,并且看起来不像一个健壮的解决方案 C#中是否存在可以一次检查和判断的条件或循环 有谁能为我提供一个干净的替代方案吗 情景: string garage = getGarageCost(id) string helmet = getHelmetCost(id) if(garage == "") { string selected

我有两个条件

我想知道的是哪个条件是真的,两个条件都是真/假,或者只有一个条件是真的

问题是如果我使用
if
语句,它会增加代码量,并且看起来不像一个健壮的解决方案

C#中是否存在可以一次检查和判断的条件或循环

有谁能为我提供一个干净的替代方案吗

情景:

string  garage = getGarageCost(id)
    string  helmet = getHelmetCost(id)

    if(garage == "")

    {

    string selected =  "dropdown is not selected"
    }

    else if(Convert.ToInt32(garage) >= 1)
    {
    string selected = "dropdown is selected"
    return selected value;
    }

    if(helmet == "")
    {
    string selected =  "dropdown is not selected"
    }
    else if(Convert.ToInt32(helmet) >= 1)
    {
    string selected = "dropdown is selected"
    return selected value;
    }
*编辑:*

我有两个下拉列表,如果选中,将所选值传递到页面

我必须检查下拉列表,然后传递值。如果未选择任何内容,则应传递字符串“未选择任何内容”

如果选中,则应进行一些计算

问题是我必须做5个if语句,因为有5种可能性

  • 选定的一个
  • 一个未选中
  • 无论如何
  • 都被选中了
  • 两者都未选中

  • 一个
    开关
    语句怎么样

    int  garage = getGarageCost(id)
    int  helmet = getHelmetCost(id)
    
    switch (garage) {
    
        case 0: 
            do some alternative work; 
            break;
        default: 
            everything else; 
            break;
    }
    
    switch (helmet) {
    
        case 0: 
            do some alternative work; 
            break;
        default: 
            everything else; 
            break;
    }
    
    pass data to view;
    
    如果两个“dothis”相同,那么可以将int转换为int?用这个逻辑:

    int value = getGarageCost(id) ?? getHelmetCost(id);
    if (value != null)
    {
        dothis()
    }
    else
    {
        // nothing selected in both lists
    }
    

    .

    你需要让你的例子更清楚-目前你正在将
    int
    null
    进行比较,这从一开始就不起作用…删除了
    asp.net mvc
    标记,因为我看不出你的问题与这项技术有什么关系。小注:1)。我想你的问题是你需要非空的
    车库
    头盔
    。2). 
    int
    永远不能为
    null
    ,这些方法是否返回
    int?
    /
    可为null
    ?对于初学者来说,车库和头盔永远不会为null,因为它们是int的。如果它们是int?我真的看不出有什么办法。为什么要删除这两条if语句?
    将其传递给view可以在所有if语句的末尾执行,因为您可以在所有条件下执行该操作。而
    是否在所有情况下都执行相同的操作?单个
    表示强制可为空的类型定义。
    ??
    运算符或null coalesce运算符如果不为null,则使用左手项,如果为null,则使用右手项作为替换项。我还将进行一些前端验证,以确保下拉框具有值。