为什么IDictionary(非泛型)不从IEnumerable <DictionaryEntry>继承?

tho*_*rn̈ 6 .net generics ienumerable idictionary base-class-library

IDictionary<TKey, TValue>继承自IEnumerable<KeyValuePair<TKey, TValue>>,但IDictionary由于某种原因不继承IEnumerable<DictionaryEntry>.我想知道为什么?.OfType<DictionaryEntry>()每当我需要对一个查询进行查询时,我讨厌写这个丑陋的IDictionary.

Cra*_*ney 3

进行这种更改将破坏该接口的每个现有实现(因为它们会突然缺少该接口规定它们必须具有的一些方法)。

此外,IDictionary 的存在只是为了兼容泛型之前的版本。除非绝对必要,否则不应在新代码中使用它。如果您实际上正在使用对象类型,则可以使用 IDictionary<object, object> 代替。