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