9

カンマ区切りのリストを生成するとき、末尾のカンマを切り落とす方法が嫌いです。

もっと良い方法はありますか?私はこれをかなり頻繁に行うので、意見を探しています。

for(int x = 0; x < list.Count; x++)
{
  sb.Append(list[x].Name);
  sb.Append(",");
}

var result = sb.toString().Substring(0, result.length - 2);
4

5 に答える 5

24

String.JoinとLinqのIEnumerable.Select拡張メソッドを使用します。

var str = String.Join(",", list.Select(x => x.Name));
于 2013-03-07T21:28:22.007 に答える
6

説明

String.JoinおよびEnumerable.Select(名前空間System.Linq)メソッドを使用できます

String.Join各要素間に指定された区切り文字を使用して、文字列配列のすべての要素を連結します。

Enumerable.Selectシーケンスの各要素を新しい形式に投影します。

サンプル

String.Join(",", list.Select(x => x.Name));

詳しくは

于 2013-03-07T21:28:29.163 に答える
4

規範事例:

string.Join(",",list.Select(l => l.Name));

nullチェックあり:

string.Join(",",list.Where(l => l != null).Select(l => l.Name));

null /空のチェックあり:

string.Join(",",list.Where(l => !string.IsNullOrEmpty(l)).Select(l => l.Name));

トリミングあり:

string.Join(",",list.Select(l => l.Name.Trim()));

双方と:

string.Join(",",list.Where(l => !string.IsNullOrEmpty(l)).Select(l => l.Name.Trim()));
于 2013-03-07T21:29:20.780 に答える
0

そして、1つの洗練されていないソリューションJoin

for(int x = 0; x < list.Count; x++)
{
    if (x > 0)
        sb.Append(",");

    sb.Append(list[x].Name);
}


var result = sb.toString();
于 2013-03-07T22:26:38.403 に答える