ホームページ > バックエンド開発 > C++ > C#で複数の辞書を効率的にマージするにはどうすればよいですか?

C#で複数の辞書を効率的にマージするにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-25 22:36:16
オリジナル
950 人が閲覧しました

How Can I Efficiently Merge Multiple Dictionaries in C#?

C# で複数の辞書を効率的にマージする

C# で複数の辞書を操作する場合、それらを 1 つの辞書にマージするのが一般的なタスクになることがあります。これを実現するための堅牢かつ効率的なメソッドを次に示します。

public static Dictionary<TKey, TValue> Merge<TKey, TValue>(IEnumerable<Dictionary<TKey, TValue>> dictionaries)
{
    return dictionaries.SelectMany(dict => dict).ToDictionary(pair => pair.Key, pair => pair.Value);
}
ログイン後にコピー

この拡張メソッドは、辞書の列挙可能なコレクションを引数として受け取り、SelectMany を使用して各辞書からすべてのキーと値のペアを選択することで、それらを 1 つの辞書にフラット化します。 。次に、フラット化されたペアのキーと値を含む ToDictionary を使用して、結果を新しい辞書に変換します。

元の辞書に重複したキーが含まれている場合、このメソッドの動作は、使用されている .NET のバージョンによって異なります。 8 より前の .NET バージョンでは、例外がスローされます。 .NET 8 以降では、新しく定義された ToDictionary オーバーロードは重複キーを無視します。

より高度なシナリオでは、ToLookup を使用して、キーごとに複数の値を許可する検索辞書を作成することもできます。ただし、提供されているリファレンス コードで示されているように、これを一意のキーを持つ辞書に変換するには追加の手順が必要です。

重複キーを上書きするか、別の方法で処理するかにかかわらず、重要な洞察は、LINQ の機能を活用することです。 SelectMany 演算子を使用して辞書をフラット化し、新しい辞書を効率的に作成します。

以上がC#で複数の辞書を効率的にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート