在使用C#中的多個詞典合作時,在C#
中有效合併多個字典,將它們合併為單個字典可能是一個常見的任務。這是實現此目的的一種強大而有效的方法:
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從每個字典中選擇所有鍵值配對來將它們弄平到單個詞典中。然後,它將結果轉換為使用鍵和扁平對的鍵和值的新詞典。
>如果原始詞典包含重複鍵,則該方法的行為取決於使用的.NET版本。在8個之前的.NET版本中,它將引發例外。在.NET 8及更高版本中,新定義的Todictionary Overload將忽略重複的鍵。
對於更高級的方案,您也可以使用Tolookup創建一個允許每個鍵允許多個值的查找字典。但是,將其轉換為具有唯一鍵的字典需要附加步驟,如提供的參考代碼中所示。
是否選擇覆蓋重複鍵或以不同的方式處理它們,關鍵的見解是利用Linq的力量。 SelectMany運算符可以使詞典變平並有效地創建一個新的詞典。
>以上是如何在C#中有效合併多個詞典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!