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

时间:2011-06-29 13:38:55

标签: c# loops if-statement

我有两个条件。

我想知道的是哪种情况属实,两者都是真/假,或只有一种是真的。

问题是如果我使用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;
    }

* 编辑:*

我有2个下拉列表,如果选中,会将所选值传递给页面。

我必须检查下拉列表然后传递值,如果没有选择任何内容,那么它应该传递一个字符串“nothing selected”。

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

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

  1. 一个选定的
  2. 未选中的一个
  3. 无论哪种方式
  4. 均已选中
  5. 均未选中

2 个答案:

答案 0 :(得分:1)

switch声明怎么样?

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;

答案 1 :(得分:1)

如果两个“dothis”相同,那么你可以将int转换为int吗?并使用这个逻辑:

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