搜尋
首頁後端開發C#.Net教程C#基礎知識整理:基礎知識(15) ICollection、迭代及泛型

1、ICollection介面
    陣列是.net framework定義的最基本的集合類型,除了數組,.net framework也定義了許多集合類型。開啟msdn可以看到,所有集合都在System.Collections命名空間下:
集合類別:
ArrayList:使用大小可按需動態增加的陣列實作IList介面。
BitArray:管理值的壓縮數組,該值表示為布林值,true表示位元是開啟的(1),false表示位元是關閉的(0)。
CaseInsensitiveComparer:比較兩個物件是否相等,比較時忽略字串的大小寫。
CollectionBase:為強型別集合提供 abstract 基底類別。
Comparer:比較兩個物件是否相等,其中字串比較是區分大小寫的。
DictionaryBase:為鍵/值對的強類型集合提供 abstract 基類
Hashtable:表示鍵/值對的集合,這些鍵/值對根據鍵的雜湊程式碼進行組織。
Queue:表示物件的先進先出集合
ReadOnlyCollectionBase:為強型別非泛型唯讀集合提供 abstract 基底類別。
SortedList:表示鍵/值對的集合,這些鍵值對按鍵排序並可按照鍵和索引存取。
Stack:表示物件的簡單的後進先出非泛型集合。
介面:
ICollection :定義所有非泛型集合的大小、枚舉數和同步方法。
IComparer:公開一種比較兩個物件的方法。
IDictionary:表示鍵/值對的非通用集合。
IDictionaryEnumerator:枚舉非泛型字典的元素。
IEnumerable:公開枚舉數,此枚舉數支援在非泛型集合上進行簡單迭代。
IEnumerator:支援對非泛型集合的簡單迭代。
IEqualityComparer:定義方法以支援物件的相等比較。
IList:表示可依索引單獨存取的物件的非泛型集合。
主要看一下ICollection介面和IEnumerable介面。
ICollection:
此介面為其實作類別定義了兩個主要規範:
(1)集合元素個數,即Count屬性;
(2)迭代(GetEnumerator方法)。
GetEnumertor方法時由ICollection的父介面IEumerable繼承而來的。 ICollection介面定義了一個儲存和取得object類型物件參考的集合,這樣可以儲存和取得各種引用類型物件的引用或值類型物件。
IEnumerable接口:
該接口是ICollection的父接口,這個接口為其實現的類別提供了可迭代的能力。 IEumerable介面只有一個GetEnumerator方法,回傳一個循環存取集合的枚舉數
2、迭代
    迭代,也叫迭代器,也就是設計模式中的迭代模式,意義是:提供一種方法順序存取一個聚合物件中各個元素,而又不暴露該物件的內部表示。因為集合的存儲方式各不相同,List是連續存儲,鍊錶使用對象間的引用存儲... ...那麼當需要遍歷集合時就不方便,就需要一種能遍歷所有不同的集合的方法,這就有了迭代器。
迭代器將結合類別看做一個無限容量的容器,存放規則是線性的。也就是除第一個和最後一個外每一個元素具有一個直接前驅和直接後繼,容器中具備一個標誌,可以指向容器中任一個存儲單位。有兩種方式:單向迭代和雙向迭代。
(1)、單向迭代
 單向迭代指只向前迭代,集合的單元標誌只能從集合的某個元素起始逐一向後移動,所以,迭代定義了三種操作:
 a、當前項目
 b、到下一項並判斷是否結束
 c、回到初始項目
 
 (2)、雙向迭代模式
 對於雙向迭代模式,集合的單元標誌即從集合的某項起逐一向後移動,也可以從集合的某項起逐一向前移動,因此,有四種操作:
a、當前項
b、前進至下一項並判斷是否末尾
c、回到前一項並判斷是否為集合開頭
d、返回初始位置

.net framework使用IEumerable介面定義了一個單向迭代規格。 ICollection介面繼承了IEumerable接口,該接口定義的GetEnumerator方法可以獲取到一個當前集合類對象的迭代對象,即一個實現了IEumerable接口的對象。
凡是實作了IEnumerable介面的類,都可以使用foreach循環迭代遍歷。
IEnumerator介面定義了一個可以遍歷object類型物件參考的迭代子,IEnumerable介面定義了取得這種迭代子物件的方法。
3、泛型集合
 ICollection接口
ICollection接口定義了泛型集合接口,所謂泛型集合,即使用了.net Framework提供的泛型特性,使集合限定為只存儲一種特定類型物件引用或值類型的資料的集合。泛型集合增強了集合存取的效率和安全性。
由於儲存類型已被確定,所以ICollection比ICollection介面提供了更多的方法,包括添加到集合,從集合刪除以及判斷一個物件引用(或物件值)是否在集合中存在。
 IEnumerable介面
ICollection介面實現了IEnumerable接口,主要用來返回一個實現了實現了IEnumerator接口的,確定類型的迭代子對象。

以上是C#基本整理:基礎知識(15) ICollection、迭代及泛型 的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
char數組在C語言中如何使用char數組在C語言中如何使用Apr 03, 2025 pm 03:24 PM

char 數組在 C 語言中存儲字符序列,聲明為 char array_name[size]。訪問元素通過下標運算符,元素以空終止符 '\0' 結尾,用於表示字符串終點。 C 語言提供多種字符串操作函數,如 strlen()、strcpy()、strcat() 和 strcmp()。

char在C語言中如何處理特殊字符char在C語言中如何處理特殊字符Apr 03, 2025 pm 03:18 PM

C語言中通過轉義序列處理特殊字符,如:\n表示換行符。 \t表示製表符。使用轉義序列或字符常量表示特殊字符,如char c = '\n'。注意,反斜杠需要轉義兩次。不同平台和編譯器可能有不同的轉義序列,請查閱文檔。

char在C語言字符串中的作用是什麼char在C語言字符串中的作用是什麼Apr 03, 2025 pm 03:15 PM

在 C 語言中,char 類型在字符串中用於:1. 存儲單個字符;2. 使用數組表示字符串並以 null 終止符結束;3. 通過字符串操作函數進行操作;4. 從鍵盤讀取或輸出字符串。

c#多線程和異步的區別c#多線程和異步的區別Apr 03, 2025 pm 02:57 PM

多線程和異步的區別在於,多線程同時執行多個線程,而異步在不阻塞當前線程的情況下執行操作。多線程用於計算密集型任務,而異步用於用戶交互操作。多線程的優勢是提高計算性能,異步的優勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務性質:計算密集型任務使用多線程,與外部資源交互且需要保持 UI 響應的任務使用異步。

C語言各種符號的使用方法C語言各種符號的使用方法Apr 03, 2025 pm 04:48 PM

C 語言中符號的使用方法涵蓋算術、賦值、條件、邏輯、位運算符等。算術運算符用於基本數學運算,賦值運算符用於賦值和加減乘除賦值,條件運算符用於根據條件執行不同操作,邏輯運算符用於邏輯操作,位運算符用於位級操作,特殊常量用於表示空指針、文件結束標記和非數字值。

char在C語言中如何進行類型轉換char在C語言中如何進行類型轉換Apr 03, 2025 pm 03:21 PM

在 C 語言中,char 類型轉換可以通過:強制類型轉換:使用強制類型轉換符將一種類型的數據直接轉換為另一種類型。自動類型轉換:當一種類型的數據可以容納另一種類型的值時,編譯器自動進行轉換。

C語言 sum 的作用是什麼?C語言 sum 的作用是什麼?Apr 03, 2025 pm 02:21 PM

C語言中沒有內置求和函數,需自行編寫。可通過遍歷數組並累加元素實現求和:循環版本:使用for循環和數組長度計算求和。指針版本:使用指針指向數組元素,通過自增指針遍歷高效求和。動態分配數組版本:動態分配數組並自行管理內存,確保釋放已分配內存以防止內存洩漏。

char與wchar_t在C語言中的區別char與wchar_t在C語言中的區別Apr 03, 2025 pm 03:09 PM

在 C 語言中,char 和 wchar_t 的主要區別在於字符編碼:char 使用 ASCII 或擴展 ASCII,wchar_t 使用 Unicode;char 佔用 1-2 個字節,wchar_t 佔用 2-4 個字節;char 適用於英語文本,wchar_t 適用於多語言文本;char 廣泛支持,wchar_t 依賴於編譯器和操作系統是否支持 Unicode;char 的字符範圍受限,wchar_t 的字符範圍更大,並使用專門的函數進行算術運算。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器