天天看點

C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充

在遊戲開發的時候, 經常需要建立和管理相關對象組, 比如伺服器清單, 商城物品清單等等. 在從伺服器拿到這些資料的時候, 首先需要将他們存放到一個資料集合裡面, 然後對集合中的資料循環周遊進行處理.

之前學過的資料集合有數組, 可以用數組來存儲這些資料. 但是采用數組作為資料集合是由弊端的, 比如數組初始化的時要指定長度, 長度是固定的, 不利于資料的動态擴充和删除. 今天學習一種專門用來資料存儲和檢索的類 -- 集合.

一.集合

在C#中, 集合是專門用于資料存儲和檢索的類. 與數組不同, 集合提供了一種靈活的資料處理方法, 處理的對象組可根據程式更改的需要動态的增長和收縮. 對于資料快速檢索, 集合還可以為對象配置設定一個唯一的" 鍵", 通過此 "鍵" 可以直接将資料從集合中取出來.

集合是類, 是以必須聲明新集合後, 才能往裡面進行資料存儲.

1.1 集合類型

集合分為兩種類型: 非泛型集合與泛型集合.

使用非泛型集合需引入:System.Collections 命名空間。

使用泛型集合需引入:System.Collections.Generic 命名空間。

非泛型集合
C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充
泛型集合
C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充
1.2 動态數組 -- ArrayList

ArrayList 是一個特殊的數組, 可以通過添加和删除元素動态改變數組長度。它是一個類, 是以需要先建立對象, 通過對象來通路成員;

ArrayList 
           

方法:

C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充

ArrayList 的方法有很多,有些方法還有多個重載。 不僅是它,其他的集合類如 Stack, Queue, List等等也是如此, 是以最好是記住一些平時常用的,其他的方法都可以現查現用。

在 Vs 中将光标放在你想要查找的類上, 按 F12 就會跳轉到該類的使用文檔, 裡面對該類的所有方法都有非常詳細的描述。掌握這個技巧就可以哪裡不會點哪裡了;

例如 ArrayList

C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充
C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充

對集合的操作重點就是會調用各種方法, 是以今天的筆記就是整理一下這些集合類的常用方法, 掌握的話還是得多多動手敲代碼。

連結清單
C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充
棧(先進後出)
C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充
隊列 (先進先出)
C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充
字典 (鍵值對)
C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充

二.索引器

索引器允許類或結構的執行個體就像數組一樣可以通過下标索引。 它類似于屬性,不同之處在于它們的取值函數采用參數。 C#中的類成員可以是任意類型,包括數組和集合。當一個類包含了數組和集合成員時,索引器将大大簡化對數組或集合成員的存取操作。

文法
[通路修飾符] 
           

練習: 定義一個Person類, 實作索引

// 定義一個Person 類
           

三.擴充

擴充, 顧名思義是給已經存在的規則再添加上你想要加的規則, 例如 :對一個 int類型的數組, 你想要讓它自己實作排序的方法, 就可以給它加個擴充.

// 随便定義一個靜态類, 在這個類裡面定義擴充
           

=======================================================

思維導圖

C# list集合 重複元素 索引_C#學習筆記12--集合/索引器/擴充

繼續閱讀