如果您在 stackoverflow 中访问此链接。有一个关于将 Ienrumerable 转换为 Dictionary 的问题。所以我的问题是,当我们有字典对象时,为什么我们需要 IEnumerable ?
实际上,我想弄清楚它们之间有什么区别。
如果您在 stackoverflow 中访问此链接。有一个关于将 Ienrumerable 转换为 Dictionary 的问题。所以我的问题是,当我们有字典对象时,为什么我们需要 IEnumerable ?
实际上,我想弄清楚它们之间有什么区别。
IEnumerable是一个interface。接口不能自己实例化,而必须实例化为实现给定接口的类。
Dictionary是hash-map实现接口的数据结构,因此它具有接口要求其实现IEnumerable具有的所有方法和属性,从而使Dictionary 结构成为可能。IEnumerableEnumerate
简而言之:IEnumerable 是一个接口,而 Dictionary 是一个实现该接口的类。
好吧,您链接的问题是相反的问题。如何从 转换IEnumerable为Dictionary. 为什么我们要反过来转换?我们可能不会。但你也可以问为什么有人会将特定的类转换为对象?
答案是有时你想要一个变量/方法参数/类成员,它可以是许多事物之一:字典或其他东西。为此,您可能会使用IEnumerable.
所以我的问题是,当我们有字典对象时,为什么我们需要 IEnumerable ?
您提到的问题是相反的:Dictionary 从 IEnumerable. 所以你有IEnumerable并且你想拥有Dictionary。
例如,当您拥有 eList并且您希望通过 item 属性值之一更快地访问集合元素时,可能需要它。
并且可以肯定的是,Dictionary<TKey, TValue>已经实现IEnumerable<T>了 ,因此不需要在相反方向进行转换(除非您尝试更改T)。