Is there a quick way to convert a Generic Dictionary from one type to another
I have this
IDictionary<string, string> _commands;
and need to pass it to a function that takes a slightly different typed Dictionary
public void Handle(IDictionary<string, Object> _commands);
The advantage of Dictionary is, it is generic type.
In Dictionary<TKey,TValue> TKey is the type of the Key, and TValue is the Type of the Value. It is recommended that you use a similar naming convention if possible in your own generics when there is nore than one type parameter.
C# - Dictionary<TKey, TValue> The Dictionary<TKey, TValue> is a generic collection that stores key-value pairs in no particular order.
NET. C# Dictionary class is a generic collection of keys and values pair of data. The Dictionary class is defined in the System. Collections.
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));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With