[英]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.