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