するために使用されStringBuilder?[重複]
-
22-08-2019 - |
質問
可能な重複:
文字列vs StringBuilder
私revisited一部の書籍を使ったお迎えにVB.NET.私にはこれだけに私の頭のかかわStringBuilderです。
うに指導す。はんだこてを使用しの場合は列2つの文字列または50?
またはその合計文字列長より大き128文字?
やまだ性能を給付きでの使用の追加の文字列の相互の関連性を検討した。
その場合を使った方が良いのは、StringBuilderのインスタンスを構築SQL文によ string.format("Select * from x where y = {0}",1)
?
いつでも印象に残っていることを宣言する他の変数を含む名前空間にはならないため小さな文字列concatenationsがいます。
で多くの書類を教えてくれるかのようにも見えませんか。
解決
んが、それは常にできたての 条この話題.概要(からコピーされた下部のページ):
- 坂道が多いので、車かタクシーでStringBuilderが列の非自明なループ、特にわからない場合はい(コンパイル時にどの多くの繰り返しできるものについてのループを実行します。例えば、ファイル読み込み、文字、文字列としてご利用+=オペレーター可能で自害しました。
- 坂道が多いので、車かタクシーを連結したオペレーターができる(readably)指定も必要な時に必要な連結され一つです。をする場合には、配列の連結配慮し、呼び出し文字列です。Concat明示的または文字列です。参加が必要な場合は、下になります。)
- ることを恐れてはいけない休みのリテラルがいくつかのビット連結され、結果は同じになります。できる援助読みやすさを切り長い文字になり、プロスタグランジンのためのインスタンスとする。
- が必要な場合は中間結果を連結したもの以外に食料を、次の繰り返し処理の結合、StringBuilderがなくなるわけではありませんのお手伝いをします。例えば、構築する氏名から名と氏名を追加して第三者の情報(ニックネーム、ものだけを使用StringBuilder必要がない場合の(名前+last name)文字列のためのその他の目的としている例を作成する人にオブジェクト
- だいconcatenationsいという別の諸表するものではありません本当にどの方法がご確認いただけます。の方がより効率的に依存する数concatenationsのサイズの文字列の関与えている順序で連結されます。まとのコードする性能ボトルネック、プロファイルまたはベンチマークにしたものです。
他のヒント
ここでは私の経験則:
StringBuilder
適切に使用した場合の正確な数のconcatenationsは未知のコンパイルす。
ホラー符号化 良い記事に関する質問は、 悲しい悲劇のマイクロ-シアター最適化.
個人的に使っていStringBuilderいただいた場合、より一又は二つの文字列を連結.さんがあったとして、それによって得るものの、私はいつも読み聞かされている正規連結に複数の文字列を別の文字列の大きいがStringBuilderに保つコピーまでの最終 ToString()
方法です。
誰かの把握ることを実験により、重要な数は6.以上6concatenations続きを使用する必要がありますStringBuilder.思い出せない私が見つかります。
しかし、ることがありますのでご注意くだけを書このライン:
"qwert" + "yuiop" + "asdf" + "gh" + "jkl;" + "zxcv" + "bnm" + ",."
取得するに換算関数呼び出しないわからない書き方でVB.net)
String.Concat("qwert", "yuiop", "asdf", "gh", "jkl;", "zxcv", "bnm", ",.");
その場所にいるすべてのconcatenations、そのかわいとStringBuilderが文字列になります。Concatの有効なすべてのconcatenationsます。この場合に限りやっているし、ループは次々に列.
私のルールが追加文字列にはForeachループは、StringBuilder.