我想在这种情况下创建一个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()
。
由于
答案 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();