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