string separator = " > ";
string retStr = "";
int count = 0;
foreach (string s in retList)
{
count++;
if(!string.IsNullOrEmpty(s))
{
if (count < retList.Count)
retStr += s + separator;
else
retStr += s;
//count < retList.Count ? retStr += s + separator : retStr += s;
}
}
Out-comment行会导致错误:Only assignment, call, increment, decrement, and new object expressions can be used as a statement
。这不等于上面的if案例吗?
答案 0 :(得分:4)
使用此
retStr = count < retList.Count ? retStr + s + separator : retStr + s;
答案 1 :(得分:3)
这是错误的:
retStr += s + separator
它应该是:
someStringbuilder.append(s); someStringbuilder.append(separator);
在你的功能结束时:
return someStringbuilder.ToString();
答案 2 :(得分:3)
return String.Join(separator, retList);
来自msdn:
<强>的string.join 强>
例如,如果separator是“,”,则value的元素是 “apple”,“orange”,“grape”和“pear”,Join(separator,value)返回 “苹果,橘子,葡萄,梨”。
如果separator为null,则使用空字符串(String.Empty)。 如果value中的任何元素为null,则使用空字符串。
如果您不想要空或空条目,请执行以下操作:
return String.Join(separator, retList.Where(x => !string.IsNullOrEmptyOrWhiteSpace(x));