質問

金曜日のリファクタリング時間です!!!

SQLステートメントの生成に使用するオブジェクトがあります。

oDb.Fromは一度設定されます。その後、メタデータは、すべてを結合して返すまで、時間の経過とともに結合を追加する場合があります。

Qは、sbFrom.Append()で置き換える前に、oDb.From + =構文を何回保持しますか

これは#3、4、または15回ですか?

またはそれは本当にコンテンツの長さの問題ですか?その場合、魔法の#は何ですか?

TIA

役に立ちましたか?

解決

http://www.codinghorror.com/blog/archives/001218をお読みください。 html

StringBuilder クラスは、巨大な文字列を構築するシナリオ向けに設計されており、通常の文字列連結の使用は実際には遅すぎます。

可能性としては、あなたが扱っている文字列の長さの種類については、実際にはまったく違いはありません-最も使いやすいものを使用してください。

他のヒント

完全に非科学的な経験則:私は3つの要素を超えて何でもします-パフォーマンスの向上のためではなく、(願わくば)良い習慣ではありません。

文字列に3つ以上の要素を追加する必要がある場合、ほとんど常にStringBuilderを使用します(3つ以上を追加すると、人々がコードに追加し始めるにつれて必然的に多くなることがわかります...既にそこにあります)。

長さが1〜5 MBを超えると予想されるもの、または多くの文字列を小さなチャンクに割り当てるものは何でも言います。

完全に非科学的ではありません。5つの連結の後に.NET文字列ビルダーが実際に効率的になる記事を一度読みました。これは、通常、String Builderを使用するときです。

また-これに関しては読みやすさが本当に重要だと思うし、場合によっては両方よりも文字列形式を好む。

アルゴリズムの連結数がO(n)を超えると、StringBuilderを使用します。 連結の数がO(1)の場合、ほとんどの場合、読みやすさは何も損なわれません(ただし、文字列が非常に大きい場合は例外で、これはあまり頻繁ではありません)。

または、十分に大きくなる文字列があることがわかっている場合。 (10万文字以上)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top