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から:

String.Join

たとえば、separatorが「、」で、値の要素が「apple」、「orange」、「grape」、「pear」の場合、Join(separator、value)は「apple、orange、grape、pear」を返します。

セパレータがnullの場合、代わりに空の文字列(String.Empty)が使用されます。値のいずれかの要素がnullの場合、代わりに空の文字列が使用されます。

nullまたは空のエントリが必要ない場合は、次のようにします。

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