我想这样做,如果subs的值不是“”那么UL在它之前和之后进入变量sL。如果subs是“”,那么sL得到值“”
var sL = (subs != "") ? "<ul>" + subs + "</ul>" : "";
但它似乎不起作用。
我的格式是否正确?
答案 0 :(得分:11)
如有疑问,请添加更多括号:
var sL = subs != "" ? ("<ul>" + subs + "</ul>") : "";
但是,您的代码应该可以正常工作;语法很好。
答案 1 :(得分:4)
苏珊,你的代码是正确的,它的确有效。我刚刚在LinqPad中测试过。 也许你的ss变量是null而不是空的。我建议你改行:
var sL = !string.IsNullOrEmply(subs) ? "<ul>" + subs + "</ul>" : "";
答案 2 :(得分:3)
这应该与此相同:
if (subs != "")
{
sL = "<ul>" + subs + "</ul>";
}
else
{
sL = "";
}
如果这是你的目标,那么我会在括号中包围"<ul>" + subs + "</ul>"
,只是为了确保编译器能够理解你想要的东西。
答案 3 :(得分:2)
我复制了你的代码,它在我的机器上工作正常。
也许问题出在其他地方?
除此之外,请使用string.IsNullOrEmpty
而不是= ""
var sL = !string.IsNullOrEmpty(subs) ? "<ul>" + subs + "</ul>" : string.Empty;
答案 4 :(得分:1)
有人提到的另一个选择是使用string.Concat
代替+
,如下所示:
var sL = (subs != "") ? string.Concat("<ul>", subs, "</ul>") : "";
答案 5 :(得分:0)
如果subs是“”,则sL也变为“”。您只是使用if的简写变体。你所写的内容与
完全相同string sL;
if (subs != ""){
sL = "<ul>" + subs + "</ul>";
}else{
sL = "";
}