1. 程式人生 > >深入.NET平臺和C#編程筆記第三章

深入.NET平臺和C#編程筆記第三章

哈希 是你 存儲 key pac 問題 所有 try 編譯

第三章 使用集合組織相關數據

1.集合概念引入

集合:某些指定的對象(SE)集中在一起就是集合

如下是一個Hello Kitty的集合

數組:可以存儲相同數據類型的一堆數據的容器

2.集合ArrayList的使用

01.引子:

用ArrayList進行賦值的時候,需要使用Add()

但是對集合中元素的修正可以使用下標,eg.list[0]=1給新值

但是在集合中元素個數為0的情況下,不能用Add()方法之外的其他手段給集合中添加元素.

數組的局限性:由於給數組中添加元素,刪除元素的時候,特別麻煩,所以我想找一個替代數組的工具,來幫我們實現數組所能實現的功能。集合應運而生.

使用ArrayList首先需要引入命名空間

集合動態擴容原理:如果集合中元素個數為0,並沒有開辟空間

02.構造函數

概念:給類定義一個方法,方法名和類名相同,沒有返回值,連void都不能有。

03.非泛型集合在使用前,一定要先導入命名空間。

04.命名空間

保證在不同的命名空間下可以出現同名類。

weilengdeyu.Download()

Weiredeyxue.UPLoad()

3.集合中元素

1.常見屬性:

Capacity:集合占用空間

Count:集合存儲元素個數

2.常用方法:

添加:int Add(Object value) //添加一個對象到集合的末尾

遍歷:通過foreach遍歷

刪除:Remove()、RemoveAt()和Clear()

*:註意事項:如果刪除了集合中的某一個元素,那麽集合的索引會自動維護

Remove():刪除內容

RemoveAt():通過索引刪除

Clear():一次性移除集合中所有的元素

Contains():是否包含某個元素

3.常見錯誤:見PPT

寫自己的組件:其實就是你在微軟已有的組件上進行第二次封裝。例如

保證在TextBox中只能輸入數字。

比如說,現在TextBox內容你想要按照自己特定的格式打印。自己在TextBox動手腳,然後讓他支持對應格式的打印。

--01.ArrayList

刪除方法,包含,

02.命名空間

同名類便於區分,加快檢索硬盤上某個類的速度

Using System.Collections

Using System.Collections.Generic; //泛型命名,默認導入

03.var :隱式類型推斷

最後一個問題:

int num=5;

04.HashTable

第一個:刪除

沒有RemoveAt()

第二個:

三個方案:根據key拿到value

只能拿到value

DictionayEntry

Foreach( DictionayEntry item in table)

{

item.Value

//命名空間.類名

}

第三個:HashTable是一種無序的雙列集合。

第四個:ContainsKey()

4.集合初始化器,對象初始化器

ArrayList engineers = new ArrayList()

{

new SE(){Name = "周星星",Age = 26,

Gender = Gender.male,ID = "000",Popularity = 10},

new SE(){Name = "王賤賤",Age = 22,

Gender = Gender.female,ID = "111",Popularity = 20},

new SE(){Name = "周姐姐",Age = 30,

Gender = Gender.male,ID = "222",Popularity = 20}

};

5.HashTable

Hashtable 通常稱為哈希表

根據鍵(Key)可以查找到相應的值 (Value)

1.HashTable註意事項

01.HashTable類型的集合只能用foreach循環遍歷,因為沒有索引

02.HashTable集合中元素是無序的(不會按照Add的順序來展示元素內容)

03.HashTable中的key不能重復

04HashTabel沒有RemoveAt()

2.對HashTable遍歷三種方案:

☆:第一種方式,遍歷所有的keys,通過key的值獲取value

☆:第二種方式:遍歷所有的value集合

☆:第三種方式,同時遍歷key和value

六、泛型集合List<T>

泛型:就是為了約束ArrayList中元素類型,而制定的一個新的集合類型,該類型只能加入同一類型的多個元素,標識符<T>,可以看成是一個占位符,泛型是將運行時錯誤提前到了編譯時

6.泛型集合Dictionary<K,V>

Dictionary<string,Person> dic=new Dictionary<string, Person>();

深入.NET平臺和C#編程筆記第三章