0

如果您在 stackoverflow 中访问此链接。有一个关于将 Ienrumerable 转换为 Dictionary 的问题。所以我的问题是,当我们有字典对象时,为什么我们需要 IEnumerable ?

实际上,我想弄清楚它们之间有什么区别。

4

3 回答 3

5

IEnumerable是一个interface。接口不能自己实例化,而必须实例化为实现给定接口的类。

Dictionaryhash-map实现接口的数据结构,因此它具有接口要求其实现IEnumerable具有的所有方法和属性,从而使Dictionary 结构成为可能。IEnumerableEnumerate

简而言之:IEnumerable 是一个接口,而 Dictionary 是一个实现该接口的类。

于 2013-09-11T06:14:31.207 回答
2

好吧,您链接的问题是相反的问题。如何从 转换IEnumerableDictionary. 为什么我们要反过来转换?我们可能不会。但你也可以问为什么有人会将特定的类转换为对象?

答案是有时你想要一个变量/方法参数/类成员,它可以是许多事物之一:字典或其他东西。为此,您可能会使用IEnumerable.

于 2013-09-11T06:16:55.010 回答
1

所以我的问题是,当我们有字典对象时,为什么我们需要 IEnumerable ?

您提到的问题是相反的:Dictionary IEnumerable. 所以你有IEnumerable并且你想拥有Dictionary

例如,当您拥有 eList并且您希望通过 item 属性值之一更快地访问集合元素时,可能需要它。

并且可以肯定的是,Dictionary<TKey, TValue>已经实现IEnumerable<T>了 ,因此不需要在相反方向进行转换(除非您尝试更改T)。

于 2013-09-11T06:15:03.577 回答