1

これは、フレームワークの一部で頻繁に発生するパターンです。文字列の配列が与えられた場合、セミコロンで区切られたすべての文字列を連結する必要があります。

どのエレガントな方法でそれを行うことができるか知りたいです。コードベース全体でいくつかのバリエーションを見てきましたが、これを実行する必要がある場合は、常に再考する必要があります。

私の現在のパターンはこれです:

String[] values = new String[] {"a","b","c","d"};
String concat = String.Empty;
foreach(String s in values)
{
   if(String.IsEmptyOrNullString(s) == false)
       concat + = ", ";
   concat += s;
}

私を否定しているのはifステートメントです。ループの前に最初の項目を挿入し、インデックス1から始まるforループで開始できますが、これによって読みやすさが向上することはありません。

あなたの提案は何ですか?

4

2 に答える 2

7

あなたが使用することができますstring.Join()

String[] values = new String[] {"a","b","c","d"};
var concat = string.Join(", ", values);

これにより、次のようになります。

あいうえお

于 2012-07-04T10:40:00.360 に答える
1

試す:

var result = string.Join(",", values.Where(s => !string.IsNullOrEmpty(s)));
于 2012-07-04T10:41:37.177 に答える