2009-03-31 13 views
12

Bir Jenerik Sözlüğü bir türe başka birJenerik Sözlüğü farklı bir türe dönüştürün

biçimine dönüştürmenin hızlı bir yolu var. Bu

IDictionary<string, string> _commands; 

var ve biraz farklı yazılmış Sözlük

public void Handle(IDictionary<string, Object> _commands); 
alan bir işleve geçmek gerekiyor

cevap

19

Yapmam dünyada

Handle(_commands.ToDictionary(p => p.Key, p => (object)p.Value)); 

değil en verimli şey yazardı herhalde, ama kovaryans gelene kadar, işte bu sonları.

+0

ToDictionary yöntemi gerektiren herhangi türlerini kabul edebilecek

Dim myDictionary AS New Dictionary(Of Object, Object) 

kullanamazsınız 'System.Linq kullanarak;' (Başımı bir iki dakikalıyordum). – danw

1

belki bu fonksiyon size

için yararlı olabilir

Ve şöyle arayacak:

Handle(Convert(_commands)); 
0

bunun gibi bir şey yapabilir mi?

Dictionary<int, string> dict = new Dictionary<int, string>(); 

dict.Add(1, "One"); 
dict.Add(2, "Two"); 
dict.Add(3, "Three"); 
dict.Add(4, "Four"); 
dict.Add(5, "Five"); 

object dictObj = (object)dict; 

IDictionary temp = (IDictionary)dictObj; 

Dictionary<int, object> objs = new Dictionary<int, object>(); 

foreach (DictionaryEntry de in temp) 
{ 
    objs.Add((int)de.Key, (object)de.Value); 
} 
0

Eğer bu daha sonra

+0

Hayır, işe yaramaz, çünkü bir Dictionary IDictionary değil ... – Eilistraee

İlgili konular