LINQ による文字列の連結
.NET プログラミングの領域には、複数の文字列を結合する効率的な手法が存在します。従来の方法では、由緒ある StringBuilder の基盤を形成するスレッドセーフな変更可能な文字列である StringBuilder クラスの使用が必要でした。ただし、より簡潔で表現力豊かなアプローチを求める人にとって、LINQ (統合言語クエリ) は魅力的な代替手段を提供します。
LINQ は .NET Framework 内の強力な拡張機能であり、開発者はオブジェクトのコレクションに対してクエリを実行できます。文字列連結のコンテキストでは、Aggregate 関数が役に立ちます。 Aggregate は、コレクションを 1 つの結果にまとめる便利な方法を提供します。
次の例を考えてみましょう。これは、昔ながらの StringBuilder メソッドの機能を複製していますが、LINQ の機能を活用しています。
string[] words = { "one", "two", "three" }; var res = words.Aggregate( "", // start with empty string to handle empty list case. (current, next) => current + ", " + next);
Aggregate 関数は、シード値と、集計ロジックを定義するラムダ式という 2 つのパラメーターを受け入れます。この場合、シード値は空の文字列であり、結果が常に有効な文字列であることが保証されます。ラムダ式は、現在の累積値とコレクション内の次の要素という 2 つの引数を受け取り、それらをカンマ区切りで単純に連結します。
上記のコードの出力は、コンマで区切られた配列:
, one, two, three
評価のみが行われる遅延実行クエリとは異なり、集計クエリは即時に実行されることに注意することが重要です。
Aggregate 関数は、文字列連結に対する簡潔で洗練されたアプローチを提供しますが、パフォーマンスが比較的低いため、大規模なデータセットに対して常に最適な選択であるとは限りません。このようなシナリオでは、String.Join メソッドがより効率的な代替手段を提供します。
以上がLINQ の集計関数は、.NET で文字列を効率的に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。