连接字符串时出现错误的简写

时间:2012-09-19 13:09:02

标签: c# asp.net

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案例吗?

3 个答案:

答案 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)

查看String.Join

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));