IEnumerable与Dictionary C#之间的区别

时间:2013-09-11 06:10:55

标签: c#

如果你去this link in stackoverflow。有关将Ienrumerable转换为Dictionary的问题。所以我的问题是为什么当我们有字典对象时我们需要IEnumerable?

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

3 个答案:

答案 0 :(得分:4)

IEnumerableinterface。接口不能自己实例化,但必须实例化为实现给定接口的类。

Dictionary是实现hash-map接口的IEnumerable数据结构,因此它具有IEnumerable接口要求其实现具有的所有方法和属性,使其成为可能Enumerate字典结构。

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

答案 1 :(得分:2)

嗯,你所关联的问题是相反的问题。如何转换IEnumerableDictionary。我们为什么要转换另一种方式呢?我们可能不会。但你也可以问为什么有人会将特定的类转换为对象?

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

答案 2 :(得分:1)

  

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

您提到的问题与此相反:从 Dictionary创建IEnumerable 。所以你有IEnumerable并且想要Dictionary

当你有例如,这可能是必需的e List并且您希望通过其中一项属性值更快地访问集合元素。

而且确实,Dictionary<TKey, TValue>已经实现了IEnumerable<T>,因此转换不需要相反的方向(除非您尝试更改T)。