if else条件实现c#

时间:2016-04-05 12:53:44

标签: c#

我想在这种情况下创建一个if / else语句:

        var controls= _listControls
            .Select(
                control => new
                {
                    Name,
                    Quantity,
                    Valid = isValid
                    ? sp.GetInfos(ID).SerialNumber.ToString()
                    : string.Empty
                })
            .ToList();

我只是想在语句中检查sp.GetInfos(ID).SerialNumber.ToString()是否为空,并说明it's not null ? DoThings() : DoThings()

由于

2 个答案:

答案 0 :(得分:1)

你可以使用三元运算符 这样的其他三元语句

Valid = isValid
? string.IsNullOrEmpty(sp.GetInfos(ID).SerialNumber?.ToString())
? string.Empty 
: sp.GetInfos(ID).SerialNumber.ToString()
: string.Empty

N.B。 SerialNumber?.ToString()是一个空条件运算符,您可以阅读更多相关信息here

答案 1 :(得分:0)

您可以将所有逻辑封装在辅助方法中。我认为它更具可读性,您也可以单独测试此方法。

string Valid(....)
{
    if (isValid)
    {
        if (sp.GetInfos(ID).SerialNumber == null)
        {
            ....
        }
        else
        {
            ..
        }
    }

    return string.Empty;
}

然后在LINQ查询

中简单地调用此方法
var controls = _listControls
        .Select(
            control => new
            {
                Name,
                Quantity,
                Valid = Valid (...) 
            })
        .ToList();