あなたが持っているとしましょう:
List<string> los = new List<string>();
このクレイジーな機能的な世界では、これらのいずれかがこれらを連結して1つの文字列を作成するのに最適であるこれらの日に住んでいます:
String.Join(String.Empty, los.ToArray());
StringBuilder builder = new StringBuilder();
los.ForEach(s => builder.Append(s));
string disp = los.Aggregate<string>((a, b) => a + b);
またはプレーンな古いStringBuilder foreach
またはより良い方法はありますか?
私はオプションAに行きます:
String.Join(String.Empty, los.ToArray());
私の理由は、Joinメソッドがその目的のために書かれたためです。実際、Reflectorを見ると、実際に最適化するために安全でないコードが使用されていることがわかります。他の2つも動作しますが、Join関数はこの目的のために作成されたと思いますが、最も効率的だと思います。私は間違っているかもしれません...
.ToArray()
なしの@Nuri YILMAZによると、これは.NET 4+です。
String.Join(String.Empty, los);
string.Concat(los.ToArray());
文字列を連結するだけの場合は、string.Join()の代わりにstring.Concat()を使用します。
.net 4.0を使用している場合、ソーター方法を使用できます。
String.Join<string>(String.Empty, los);
String.Join()は非常に高速に実装されており、既に問題の文字列のコレクションがあるため、おそらく最良の選択です。とりわけ、「文字列のリストに参加しています!」と叫ぶ。いつもいい。
los.Aggregate((current, next) => current + "," + next);
私の投票は文字列です。
ラムダ評価と一時関数を作成する必要がなく、関数呼び出しが少なく、スタックのプッシュとポップが少なくなります。