1
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;
      }
}

注释掉的行导致错误:Only assignment, call, increment, decrement, and new object expressions can be used as a statement。这不应该等同于上面的 if-case 吗?

4

3 回答 3

4

使用这个

retStr = count < retList.Count ? retStr + s + separator : retStr + s;
于 2012-09-19T13:13:00.000 回答
3

这是错误的:

retStr += s + separator

它应该是:

someStringbuilder.append(s); someStringbuilder.append(separator); 

在您的功能结束时:

  return someStringbuilder.ToString();
于 2012-09-19T13:12:38.887 回答
3

看看String.Join

return String.Join(separator, retList);

来自 msdn:

字符串连接

例如,如果 separator 是“,”,value 的元素是“apple”、“orange”、“grape”和“pear”,则 Join(separator, value) 返回“apple, orange, grape, pear”。

如果分隔符为空,则使用空字符串 (String.Empty)。如果 value 中的任何元素为 null,则使用空字符串代替。

如果您不想要 null 或空条目,请执行以下操作:

return String.Join(separator, retList.Where(x => !string.IsNullOrEmptyOrWhiteSpace(x));
于 2012-09-19T13:15:30.423 回答