簡體   English   中英

IEnumerable與Dictionary C#之間的區別

[英]difference between IEnumerable vs Dictionary C#

如果您在stackoverflow中轉到此鏈接 關於將“可加密的”轉換為“字典”存在一個問題。 所以我的問題是,當我們擁有字典對象時,為什么我們需要IEnumerable?

實際上,我正在嘗試找出它們之間的區別。

IEnumerable是一個interface 接口不能單獨實例化,而必須作為實現給定接口的類實例化。

Dictionary是實現IEnumerable接口的hash-map結構,因此它具有IEnumerable接口要求其實現具有的所有方法和屬性,從而可以Enumerate Dictionary結構。

簡而言之:IEnumerable是一個接口,Dictionary是實現該接口的類。

好吧,您鏈接的問題是相反的問題。 如何從IEnumerable轉換為Dictionary 我們為什么要轉換另一種方式? 我們可能不會。 但您也可以問為什么有人將特定的類轉換為對象?

答案是有時您想擁有一個變量/方法參數/類成員,該成員可以是很多東西之一:字典或其他東西。 為此,您可以使用IEnumerable

所以我的問題是,當我們擁有字典對象時,為什么我們需要IEnumerable?

您提到的問題是相反的: IEnumerable創建Dictionary 因此,您擁有IEnumerable並且希望擁有Dictionary

當您擁有例如e List並希望通過items屬性值之一更快地訪問集合元素時,可能需要使用它。

並且可以肯定的是, Dictionary<TKey, TValue>已經實現了IEnumerable<T> ,因此轉換不需要朝相反的方向進行(除非您嘗試更改T )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM