string は不変(イミュータブル)な型です。ループ内などで大量の文字列連結を効率よく行いたい場合に、適したクラスはどれですか?
string は不変であるため、+ 演算子などで連結するたびに新しい文字列オブジェクトが生成され、大量に繰り返すとメモリ確保やコピーのコストが増大します。StringBuilder は内部のバッファーを直接書き換えられる可変の文字列クラスで、Append メソッドで文字列を追加しても毎回新しいオブジェクトを作らないため、ループ内での大量連結に適しています。最終的に ToString メソッドで string に変換します。StringReader は文字列を読み取るためのクラス、StringComparer は文字列の比較用のクラスです。