2013-11-22 24 views
26

Ben bunları birleştirme alamıyorum:Concatenate iki Sözlükler

GroupNames = GroupNames.Concat(AddedGroupNames); 

"tipi örtük dönüştürülen olamaz" çünkü. İnanıyorum (ve benim kodlarımın doğru olduğunu kanıtlar) onların tipi aynıdır - neye bakıyorum?

+1

'GroupNames' ve' AddedGroupNames' arasında önemli çakışmaların olmayacağını varsaymak güvenli midir? –

+2

Bu daha önce şu adreste yanıtlanmıştır: http://stackoverflow.com/questions/294138/merging-dictionaries-in-c-sharp –

cevap

54

Sana Dictionary<string,string> olarak GroupNames tanımlanan düşünüyorum, bu yüzden böyle ToDictionary eklemek gerekir:

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

2 orijinal sözlükleri farklı tuşları olurdu Not olduğunu, aksi takdirde biz düzgün şekilde birleştirilebilmesi için bazı kural gerekir.

+5

Harika ... Bu, orijinal olarak yukarıda işaretlenen soruda verilen diğer cevaplarla karşılaştırıldığında çok daha basit bir çözümdür ! –

+2

Bu iyi bir çözüm, ancak sahip olduğu tek sorun, yinelenen anahtarlar hakkında. Yinelenen anahtarlar varsa, bir istisna atılır. –