【发布时间】:2013-09-06 16:53:42
【问题描述】:
我有一个 IDictionary(不是通用的,所以我在这里处理object),我想从中只获取该 IDictionary 中与特定键类型 K 和特定值相对应的元素类型 V。有十亿种方法可以做到这一点,但我发现的最优雅的方法似乎是:
Dictionary<K, V> dict = myIDictionary.OfType<KeyValuePair<K, V>>();
这编译得很好,所以我假设这个方法可以用于字典(它由 IEnumerable 声明)但结果字典是空的,尽管那里肯定有满足这些条件的 KVP。显然,我假设KeyValuePair<K, V> 是它所期望的格式,因为这是在字典上枚举时使用的格式,但它是别的吗?我有什么遗漏吗?
【问题讨论】:
-
字典的运行时类型是什么?
-
我客的字典类型(实现
IDictionary)可以在System.Collections.Specialized找到,里面有ListDictionary、HybridDictionary和OrderedDictionary。
标签: c# dictionary ienumerable oftype