2013-11-22 13 views
26

dato qualche Dizionariconcatenare due Dizionari

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

non sono in grado di unirli in uno:

GroupNames = GroupNames.Concat(AddedGroupNames); 

perché "il tipo non può essere implicitamente convertito". Credo (e il mio codice mi dimostra vero) il loro tipo è lo stesso - cosa sto trascurando?

+1

È sicuro assumere che non ci saranno collisioni tra "GroupNames" e "AddedGroupNames"? –

+2

Qui è già stata data una risposta qui: http://stackoverflow.com/questions/294138/merging-dictionaries-in-c-sharp –

risposta

54

penso che hai definito il tuo GroupNames come Dictionary<string,string>, quindi è necessario aggiungere ToDictionary in questo modo:

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

Nota che 2 dizionari originali avrebbero chiavi diverse, altrimenti abbiamo bisogno di qualche regola di unire correttamente.

+5

Great..questa soluzione è molto più semplice rispetto ad altre risposte fornite nella domanda sopra indicata come originale ! –

+2

È una buona soluzione, ma l'unico problema riguarda le chiavi duplicate. Se sono presenti chiavi duplicate, verrà generata un'eccezione. –