搜尋
首頁後端開發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
c#vs. .net:澄清關鍵差異和相似之處c#vs. .net:澄清關鍵差異和相似之處May 01, 2025 am 12:12 AM

C#是一種編程語言,而.NET是一個軟件框架。 1.C#由微軟開發,適用於多平台開發。 2..NET提供類庫和運行時環境,支持多語言。兩者協同工作,構建現代應用。

超越炒作:評估C#.NET的當前作用超越炒作:評估C#.NET的當前作用Apr 30, 2025 am 12:06 AM

C#.NET是一個強大的開發平台,結合了C#語言和.NET框架的優勢。 1)它廣泛應用於企業應用、Web開發、遊戲開發和移動應用開發。 2)C#代碼編譯成中間語言後由.NET運行時環境執行,支持垃圾回收、類型安全和LINQ查詢。 3)使用示例包括基本控制台輸出和高級LINQ查詢。 4)常見錯誤如空引用和類型轉換錯誤可以通過調試器和日誌記錄解決。 5)性能優化建議包括異步編程和優化LINQ查詢。 6)儘管面臨競爭,C#.NET通過不斷創新保持其重要地位。

C#.NET的未來:趨勢和機遇C#.NET的未來:趨勢和機遇Apr 29, 2025 am 12:02 AM

C#.NET的未來趨勢主要集中在雲計算、微服務、AI和機器學習集成以及跨平台開發三個方面。 1)雲計算和微服務:C#.NET通過Azure平台優化雲環境表現,支持構建高效微服務架構。 2)AI和機器學習集成:借助ML.NET庫,C#開發者可在應用中嵌入機器學習模型,推動智能化應用發展。 3)跨平台開發:通過.NETCore和.NET5 ,C#應用可在Windows、Linux和macOS上運行,擴展部署範圍。

C#.NET開發今天:趨勢和最佳實踐C#.NET開發今天:趨勢和最佳實踐Apr 28, 2025 am 12:25 AM

C#.NET開發的最新動態和最佳實踐包括:1.異步編程提高應用響應性,使用async和await關鍵字簡化非阻塞代碼;2.LINQ提供強大查詢功能,通過延遲執行和表達式樹高效操作數據;3.性能優化建議包括使用異步編程、優化LINQ查詢、合理管理內存、提升代碼可讀性和維護性、以及編寫單元測試。

C#.NET:使用.NET生態系統構建應用程序C#.NET:使用.NET生態系統構建應用程序Apr 27, 2025 am 12:12 AM

如何利用.NET構建應用?使用.NET構建應用可以通過以下步驟實現:1)了解.NET基礎知識,包括C#語言和跨平台開發支持;2)學習核心概念,如.NET生態系統的組件和工作原理;3)掌握基本和高級用法,從簡單控制台應用到復雜的WebAPI和數據庫操作;4)熟悉常見錯誤與調試技巧,如配置和數據庫連接問題;5)應用性能優化與最佳實踐,如異步編程和緩存。

C#作為多功能.NET語言:應用程序和示例C#作為多功能.NET語言:應用程序和示例Apr 26, 2025 am 12:26 AM

C#在企業級應用、遊戲開發、移動應用和Web開發中均有廣泛應用。 1)在企業級應用中,C#常用於ASP.NETCore開發WebAPI。 2)在遊戲開發中,C#與Unity引擎結合,實現角色控制等功能。 3)C#支持多態性和異步編程,提高代碼靈活性和應用性能。

C#.NET用於網絡,桌面和移動開發C#.NET用於網絡,桌面和移動開發Apr 25, 2025 am 12:01 AM

C#和.NET適用於Web、桌面和移動開發。 1)在Web開發中,ASP.NETCore支持跨平台開發。 2)桌面開發使用WPF和WinForms,適用於不同需求。 3)移動開發通過Xamarin實現跨平台應用。

C#.NET生態系統:框架,庫和工具C#.NET生態系統:框架,庫和工具Apr 24, 2025 am 12:02 AM

C#.NET生態系統提供了豐富的框架和庫,幫助開發者高效構建應用。 1.ASP.NETCore用於構建高性能Web應用,2.EntityFrameworkCore用於數據庫操作。通過理解這些工具的使用和最佳實踐,開發者可以提高應用的質量和性能。

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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

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