C# では、繰り返しの文字で構成される文字列を作成するさまざまな方法があります。最も効率的で適切な方法を決定するために、オプションを詳しく調べてみましょう:
LINQ バージョン:
private string Tabs(uint numTabs) { IEnumerable<string> tabs = Enumerable.Repeat("\t", (int) numTabs); return (numTabs > 0) ? tabs.Aggregate((sum, next) => sum + next) : ""; }
LINQ アプローチは簡潔ですが、不要なオーバーヘッドが発生します。 LINQ 操作の使用 (繰り返し、 Aggregate).
StringBuilder バージョン:
private string Tabs(uint numTabs) { StringBuilder sb = new StringBuilder(); for (uint i = 0; i < numTabs; i++) sb.Append("\t"); return sb.ToString(); }
StringBuilder のアプローチは簡単ですが、StringBuilder オブジェクトのメモリ割り当てのため、他のオプションと比較してわずかに遅くなる可能性があります。 .
文字列バージョン:
private string Tabs(uint numTabs) { string output = ""; for (uint i = 0; i < numTabs; i++) { output += '\t'; } return output; }
文字列バージョンは基本的なものであり、追加のクラス インスタンスは必要ありません。シンプルさと効率が優先される場合、これは良いオプションです。
最適化されたソリューション:
文字列バージョンをさらに最適化するには、次の構文の使用を検討してください:
static string Tabs(int n) { return new string('\t', n); }
この構文はループの必要性を排除し、次の文字列を生成する直接的かつ効率的な方法を提供します。指定された文字を含む必要な長さ。
結論:
これらのオプションの中から最適な選択は、アプリケーションの特定の要件によって異なります。パフォーマンスが重要なシナリオでは、最適化された文字列バージョンまたは新しい文字列構文をお勧めします。シンプルさと読みやすさが重要な基本的なシナリオには、基本的な文字列バージョンが適しています。
以上がC# で文字を繰り返す最も速い方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。