對IEnumerableT,IDictionaryTkey,TValue,ICollectionT,IListT的總結

1、IEnumerable<T>接口和IEnumerable接口

實現了IEnumerable接口的集合表明該集合能夠提供一個enumerator(枚舉器)對象,支持當前的遍歷集合。IEnumerable接口只有一個成員GetEnumerator()方法。

IEnumerator接口實現了IEnumerator接口的集合實現了從一個元素到另一個元素向前移動的方法,同時也可以隨時返回初始處。
IEnumerator接口是只讀的。

包括以下三個成員

MoveNext()方法調整遍歷指針移向集合的下一個元素。注意,遍歷指針的初始位置是集合中第一個元素的前面。要指向第一個元素,必須先調用一次MoveNext()方法。該方法返回一個布爾值,如果成功遍歷到下一個元素,則返回true;如果指針移出末尾,則返回false。

Reset()方法用于設置遍歷指針指向初始位置,即集合中第一個元素的前面。

Current屬性返回集合中當前對象的引用。

?

2、ICollection<T>接口和ICollection接口

該接口是IEnumerable接口的子接口,定義了集合的大小、IEnumerator接口和同步方法。在IEnumerable接口的基礎上增加了以下功能。

Count;該屬性返回集合中元素的數目。

CopyTo(Array array, int index);該方法用于實現從集合中拷貝元素到一個一維數組中。

3、IList接口和IList<T>接口

ILIst接口包括以下方法和屬性

?

Add()和Insert()方法用于向集合中添加條目,使用索引來指定項目要插入的位置,其中首元素的索引為0;Add()將新條目添加到尾部。

Remove()和RemoveAt()用于從列表中刪除條目。Clear()用于刪除所有條目。

IndexOf和Contains()用于搜索該列表。

this屬性用于獲取或設置索引指定的值。C#中可以使用[]運算符進行訪問

?

IList<T>接口

?

ArrayList類
ArrayList類實際上是C#中的”動態數組”。數組在new創建后,其大小(Length)是不能改變的,而ArrayList中的數組元素的個數(Count)是可以改變的,元素可以加入及移出。

?

4、IDictionary<Tkey,Tvalue>接口IDictionary

?

IDictionary接口提供了一組”關鍵字/值”的集合,Hashtable是IDictonary的一個重要實現。

IDictionary接口是一個包含一組”關鍵字/值”對的數據結構,每個值都由相應的關鍵字來定義。關鍵字和值可以是任何數據類型,關鍵字必須唯一且非空。

Add()方法添加一個指定的關鍵字和值的條目到IDictionary接口。

this屬性檢索指定關鍵字所對應的值。

Keys和Values屬性分別返回包含所有關鍵字和值的集合。

Remove()用于刪除指定關鍵字對應的條目。Clear()用于刪除所有條目。

GetEnumator()返回一個IDictionaryEnumerator,可用于遍歷IDictionary接口。

?

IDictionaryEnumerator接口

IDictionaryEnumerator接口基于IEnumerator接口,可以使用Entry屬性檢索當前條目的關鍵字和值,或者使用Key和Value屬性分別檢索。Entry屬性返回一個DictionaryEntry對象。

DictionaryEntry是一個值類型,包含Key和Value兩個字段,每個字段都是一個對象引用。s

Hashtable類

Hashtable(哈希表)表示一個關鍵字和值相關聯的集合,它的組織方式能夠高效地檢索其中的值。

?

HashMap和Hashtable及HashSet的區別

http://www.blogjava.net/fisher/archive/2006/12/13/87398.html

?

?

轉載于:https://www.cnblogs.com/huangmeimujin/archive/2012/03/26/2417523.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260909.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260909.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260909.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Backup--修改實例級別是否使用壓縮備份的默認值

-- --修改實例級別是否使用壓縮備份的默認值 USE master; GO EXEC sp_configure backup compression default, 1; RECONFIGURE WITH OVERRIDE;轉載于:https://www.cnblogs.com/TeyGao/p/3519952.html

Java學習——Java運算符

位運算符 A 0011 1100 B 0000 1101 ----------------- A&b 0000 1100 A | B 0011 1101 A ^ B 0011 0001A << 2 1111 0000A >>> 2 0000 1111 ~A 1100 0011 例子 package import_test;public class Employee {public static void main(String args[])…

學習Python中用numpy與matplotlib遇到的一些數學函數與函數的繪圖

學習Python中的一些數學函數與函數的繪圖 主要用到numpy 與 matplotlib 如果有什么不正確&#xff0c;歡迎指教。 圖片不知道怎樣批量上傳&#xff0c;一個一個怎么感覺很小&#xff0c;請見諒 自行復制拷貝&#xff0c;到vs&#xff0c;jupyter notebook, spyder都可以 函…

控制臺輸出

getchar() system("pause") getch()//<conio.h>轉載于:https://www.cnblogs.com/lzihua/archive/2012/03/29/2422988.html

Linux基礎之文件權限詳解

Linux中對于權限的制定雖然沒有Windows的那么精細&#xff0c;但是如果你了解并掌握Linux中文件的權限知識&#xff0c;也可以像Windows那樣對權限做到精確配置。Linux中的文件權限是什么&#xff1f;如何查看Linux中的文件權限[rootlocalhost test]# ll -d /test/drwxr-xr-x. …

有這個OCR程序,不用再買VIP了,Python 調用百度OCR API

最近學習&#xff0c;很多東西都是視頻&#xff0c;截圖后&#xff0c;又想做成文檔保存起來。 剛開始不多&#xff0c;打一下字就很快解決了。 隨著時間的推移&#xff0c;現在越來越多的圖了&#xff0c;管理起來確實不方便&#xff0c;打字有時也不能很快的解決。 所以就…

android apk如何入門

android自己摸索了6,7個月不知道算不算入門&#xff01;對了只是應用層apk! 說說我的情況&#xff01;有C語言基礎&#xff0c;沒有接觸過JAVA語言。 1.先找視頻教程看&#xff0c;mars老師的&#xff01;不要理會java語言&#xff01;4季一氣看完&#xff01; 看了這個視頻教程…

linux常用命令_Linux常用命令全稱

從事IT行業的很多人都會使用Linux常用命令&#xff0c;但是知道這些常用命令全稱的人并不多&#xff0c;讓我們來看看這些常用命令對應的全稱吧&#xff01;必備Linux命令和C語言基礎_C語言_嵌入式開發工程師-創客學院?www.makeru.com.cnpwd:print work directory 打印當前目錄…

存儲程序(1)——MYSQL

MySQL支持把幾種對象存放在服務器端供以后使用。這幾種對象有一些可以根據情況通過程序代碼調用&#xff0c;有一些會在數據表被修改時自動執行&#xff0c;還有一些可以在預定時刻自動執行。它們包括以下幾種: 1.存儲函數(stored function)。返回一個計算結果&#xff0c;該結…

闖過這 54 關,點亮你的 Git 技能樹 (五) - 完結篇

這是一個系列文章&#xff0c;介紹學習 Git 的一個小游戲 - githug&#xff0c;如果你是第一次看到&#xff0c;請先閱讀&#xff1a;闖過這 54 關&#xff0c;點亮你的 Git 技能樹闖過這 54 關&#xff0c;點亮你的 Git 技能樹&#xff08;一&#xff09;闖過這 54 關&#xf…

Jupyter notebook 不安裝主題,通過修改css更改 默認字體,字體大小等

目標&#xff1a; Jupyter notebook 又不想改更主題的的情況下&#xff0c;可以通過修改css的目的來達到修改默認的字體&#xff0c;字號心達到可以好的閱讀效果。 方法 要修改的css文件目錄如下&#xff0c; D:\Anaconda\Lib\site-packages\notebook\static\custom 這個就是…

項亮 陳義 王益《推薦系統實踐》

最近很多讀者關注《推薦系統實踐》一書&#xff0c;詢問本書目前的寫作進展和出版時間。自今日起&#xff0c;本書正式進入開放出版流程&#xff0c;作者會全程在本社區中互動&#xff0c;與大家分享寫做過程中的點滴。 技術背景 推薦系統從1994年開始&#xff0c;經過Amazon&a…

堅果nuts 加速 官網_【喂你播】堅果手機2020新品發布會來了;三星定向華為手機推以舊換新...

周五喂diu 不只有你們愛的女主播 還有小編呢BGM&#xff1a;Make You Hustle-Croatia Squad堅果手機2020新品發布會來了堅果手機正式宣布&#xff1a;堅果手機2020新品發布會將于10月20日19:30在五棵松M空間舉行。根據此前爆料&#xff0c;堅果手機新品或命名為堅果Pro4&#x…

不可不知的Oracle常用技巧

不可不知的Oracle常用技巧 表復制 1.方法一&#xff1a;復制表結構和數據 create table temp_clientloginuser as select distinct userid from tbuserloginlog; 2.方法二&#xff1a;僅復制數據 -- 如果表結構一樣 insert into mytable select * from yourtable; -- 如果表結構…

圖像處理核函數:之高斯核的生成方法 python

圖像處理核函數&#xff1a;之高斯核函數的生成方法 python高斯核函數&#xff08;低通高斯濾波器核&#xff09;高斯分布函數高斯核生成函數代碼效果高斯核函數的圖像高斯核函數&#xff08;低通高斯濾波器核&#xff09; 最近在看DIP&#xff08;Digital Image Processing)&…

WEB-INFO/lib build path 的jar包問題

為什么80%的碼農都做不了架構師&#xff1f;>>> 一、build path&WEB-INFO/lib介紹 build path&#xff1a;可以說是引用&#xff1b; WEB-INFO/lib&#xff1a;可以說是固定在一個地方&#xff1b; eclipse編譯項目的時候是根據build path的&#xff0c;如果…

Windows phone 7之頁面布局

Windows phone的頁面布局方式一般是依賴布局控件實現的&#xff0c;而布局控件有三種Grid&#xff0c;StackPanel和Canvas Grid是網格布局方式&#xff0c;相當于一個表格&#xff0c;有行和列&#xff0c;新建一個Windows phone項目&#xff0c;打開MainPage.xaml&#xff0c;…

蘋果電腦刪除軟件_軟件自動開啟很煩人?如何徹底關掉開機自動開啟的應用程序...

使用Mac的小伙伴有沒有這樣的煩惱&#xff0c;電腦一開機&#xff0c;一堆煩人的軟件就自動開啟了&#xff0c;讓人很懊惱&#xff0c;如何才能徹底關掉開機自動開啟的應用程序&#xff1f;mac開機啟動項怎么設置&#xff1f;開機啟動項要怎么禁止&#xff1f;今天就帶大家解決…

UVALive2678子序列

UVALive2678 http://122.207.68.93:9090/csuacmtrain/problem/viewProblem.action?id453 【題目描述】&#xff1a;n個正整數組成的序列。給定整數S&#xff0c;求長度最短的連續序列&#xff0c;使他們的和大于等于S。 【算法分析】&#xff1a; 【二分】&#xff1a; 全是…

Jupyter notebook 使用過程中的一些小技巧總結

Jupyter notebook 小技巧 這是自己使用Jupyter notebook 的過程&#xff0c;遇到的一些問題&#xff0c;還有一些使用的小技巧&#xff0c;希望可以幫且大家。會不定時更新 code 轉 markdown&#xff1a; 按鍵 M code 轉 markdown&#xff1a; 按鍵 Y 換行&#xff1a;打完一…