IEnumerable 与字典 C# 之间的差异

本文关键字:之间 字典 IEnumerable | 更新日期: 2023-09-27 18:30:56

如果你在stackoverflow中转到这个链接。有一个关于将 Ienrumerable 转换为字典的问题。 所以我的问题是,当我们有字典对象时,为什么我们需要 IEnumerable?

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

IEnumerable 与字典 C# 之间的差异

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)。