データを複数の出力形式に変換するアプリケーションを開発しています。
アプリケーションには、次のコードが含まれています。 (行番号は参照用にのみ記載されています)。

タブ区切りの出力を生成するコードセグメントを開発しています。すべての出力ルーチンは、次のインタフェースを実装しています。

GetOutput()メソッドの完了時間を最小限にする必要があります。
どのコードセグメントを06行目に挿入すればよいですか?

正解:B
説明/参照:
Explanation:
Stringオブジェクトの連結処理では、既存の文字列と新しいデータから常に新しいオブジェクトが作成されます。
StringBuilderオブジェクトは、新しいデータの連結に対応するバッファを保持します。空き容量があれば新しいデータがバッファに追加されます。それ以外の場合は、新しい大きなバッファが割り当てられ、元のバッファのデータが新しいバッファにコピーされ、新しいデータが新しいバッファに追加されます。
StringまたはStringBuilderオブジェクトの連結操作のパフォーマンスは、メモリー割り当ての頻度によって異なります。 StringBuilderオブジェクトバッファが新しいデータを格納するには小さすぎる場合にのみ、StringBuilder連結操作でメモリを割り当てますが、String連結操作では常にメモリが割り当てられます。固定数のStringオブジェクトを連結する場合は、Stringクラスを使用します。その場合、コンパイラは個々の連結演算を単一の演算に組み合わせることさえできます。任意の数の文字列を連結する場合は、StringBuilderオブジェクトを使用します。たとえば、ユーザー入力の文字列をランダムに連結するためにループを使用している場合です。
参考文献:http://msdn.microsoft.com/en-us/library/system.text.stringbuilder(v=vs.110).aspx