我想这样做,以便如果subs的值不是“”,那么UL会在它之前和之后进入变量sL。如果subs是“”,那么sL得到值“”困惑?运算符在c#
var sL = (subs != "") ? "<ul>" + subs + "</ul>" : "";
但它似乎并不奏效。
我的格式正确吗?
我想这样做,以便如果subs的值不是“”,那么UL会在它之前和之后进入变量sL。如果subs是“”,那么sL得到值“”困惑?运算符在c#
var sL = (subs != "") ? "<ul>" + subs + "</ul>" : "";
但它似乎并不奏效。
我的格式正确吗?
有疑问时,添加更多的括号:
var sL = subs != "" ? ("<ul>" + subs + "</ul>") : "";
然而,你的代码应该正常工作了;该语法很好。
这应该是相同的,以这样的:
if (subs != "")
{
sL = "<ul>" + subs + "</ul>";
}
else
{
sL = "";
}
如果这是你的目标是什么,然后我会环绕在括号中的"<ul>" + subs + "</ul>"
,只是要确定,编译器理解你想要什么。
如果subs是“”,那么sL也变成“”。你只是使用if的简写变体。你写的和
string sL;
if (subs != ""){
sL = "<ul>" + subs + "</ul>";
}else{
sL = "";
}
对于大括号在同一行+1)/编辑:等等,这不符合您的帖子。如果它是合法的,我会的! ;) – fjdumont
苏珊,你的代码是正确的,它的工作原理。我刚刚在LinqPad中测试过。 也许你的ss变量是null而不是空的。我建议你改变你的行:
var sL = !string.IsNullOrEmply(subs) ? "<ul>" + subs + "</ul>" : "";
我copy-pasta'd你的代码,它在我的机器上工作得很好。
也许问题出在别的地方?
顺便说一句,而使用string.IsNullOrEmpty
在= ""
var sL = !string.IsNullOrEmpty(subs) ? "<ul>" + subs + "</ul>" : string.Empty;
另一种选择谁也没有提到尚未将使用string.Concat
,而不是+
,像这样:
var sL = (subs != "") ? string.Concat("<ul>", subs, "</ul>") : "";
“这似乎并没有工作“对于你所看到的行为很少有用的描述。请提供更多细节。 –