How would I iterate through the keys and values of an IDictionary
if I don't know the concrete types of the keys and values within, therefore want to just treat them as object
s?
If I do something like:
foreach(var x in myIDictionary) { ... }
I think x
is an object
. But how would I get the Key
and Value
out of it (both typed as object
s), as specified in the IDictionaryEnumerator
? There isn't an IKeyValuePair
without generic parameters is there?
I guess I could loop through the enumerator by hand using MoveNext
etc, but I feel like there must be a way to do it with foreach
!
You can explicitly specify DictionaryEntry
pair type in foreach
like this:
foreach (DictionaryEntry x in myIDictionary)
Though you should be sure that it is standard implementation of IDictionary
(like Hashtable
or Dictionary<TKey, TValue>
)
Otherwise it can be literally anything in enumerator.