如果你去this link in stackoverflow。有关将Ienrumerable转换为Dictionary的问题。所以我的问题是为什么当我们有字典对象时我们需要IEnumerable?
实际上,我试图弄清楚它们之间有什么区别。
答案 0 :(得分:4)
IEnumerable
是interface
。接口不能自己实例化,但必须实例化为实现给定接口的类。
Dictionary
是实现hash-map
接口的IEnumerable
数据结构,因此它具有IEnumerable
接口要求其实现具有的所有方法和属性,使其成为可能Enumerate
字典结构。
简而言之:IEnumerable是一个接口,而Dictionary是一个实现接口的类。
答案 1 :(得分:2)
嗯,你所关联的问题是相反的问题。如何转换IEnumerable
到Dictionary
。我们为什么要转换另一种方式呢?我们可能不会。但你也可以问为什么有人会将特定的类转换为对象?
答案是有时你想要一个变量/方法参数/类成员,它可以是很多东西之一:字典或其他东西。为此你可以使用IEnumerable
。
答案 2 :(得分:1)
所以我的问题是,当我们有字典对象时,为什么我们需要IEnumerable?
您提到的问题与此相反:从 Dictionary
创建IEnumerable
。所以你有IEnumerable
并且想要Dictionary
。
当你有例如,这可能是必需的e List
并且您希望通过其中一项属性值更快地访问集合元素。
而且确实,Dictionary<TKey, TValue>
已经实现了IEnumerable<T>
,因此转换不需要相反的方向(除非您尝试更改T
)。