2013-11-22 72 views
26

鑑於一些字典連接兩個字典

Dictionary<string, string> GroupNames = new Dictionary<string, string>(); 
Dictionary<string, string> AddedGroupNames = new Dictionary<string, string>(); 

我無法將它們合併爲一個:

GroupNames = GroupNames.Concat(AddedGroupNames); 

因爲「類型不能被隱式轉換」。我相信(和我的代碼證明我是真的)他們的類型是一樣的 - 我忽略了什麼?

+1

假設'GroupNames'和'AddedGroupNames'之間不存在關鍵衝突是否安全? –

+2

這已經在這裏得到解答:http://stackoverflow.com/questions/294138/merging-dictionaries-in-c-sharp –

回答

54

我想你定義你的GroupNamesDictionary<string,string>,所以你需要添加ToDictionary這樣的:

GroupNames = GroupNames.Concat(AddedGroupNames) 
         .ToDictionary(x=>x.Key,x=>x.Value); 

注意2個原詞典將有不同的密鑰,否則,我們需要一些規則,以確保正確合併。

+5

偉大..這是比上面標記作爲原始問題給出的其他答案更簡單的解決方案! –

+2

這是一個很好的解決方案,但唯一的問題是重複密鑰。如果有重複的鍵,則會拋出異常。 –