KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
If 'value' is an incoming generic dictionary whose types are unknown/don't matter, how do I take its entries and put them into a target dictionary of type IDictionary<object, object> ? if(type == typeof(IDictionary<,>)) { // this doesn't compile // value is passed into the method as object and must be cast IDictionary<,> sourceDictionary = (IDictionary<,>)value; IDictionary<object,object> targetDictionary = new Dictionary<object,object>(); // this doesn't compile foreach (KeyValuePair<,> sourcePair in sourceDictionary) { targetDictionary.Insert(sourcePair.Key, sourcePair.Value); } return targetDictionary; } EDIT: Thanks for the responses so far. The problem here is that the argument to Copy is only known as type 'object'. For example: public void CopyCaller(object obj) { if(obj.GetType() == typeof(IDictionary<,>) Copy(dictObj); // this doesn't compile }
Tags (comma-separated)
Save Edits
Cancel