Is there a quick way to convert a Generic Dictionary from one type to another
I have this
IDictionary _commands;
I suppose I would write
Handle(_commands.ToDictionary(p => p.Key, p => (object)p.Value));
Not the most efficient thing in the world to do, but until covariance is in, that's the breaks.
maybe this function can be useful for you
IEnumerable<KeyValuePair<string, object>> Convert(IDictionary<string, string> dic) {
foreach(var item in dic) {
yield return new KeyValuePair<string, object>(item.Key, item.Value);
}
}
And you will call it like so:
Handle(Convert(_commands));
Can't you use
Dim myDictionary AS New Dictionary(Of Object, Object)
This would then be able to accept any types
could something like this do?
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);
}