集合可以說是數組的超集,集合可以維護對象數組,集合包含了更高級的功能。例如控制對其包含的對象的訪問、搜索和排序等。數組是固定的,一旦我們創建好了數組,不能在現有數組的末尾添加新項,除非我們創建新的數組。
C#中的數組實現為System.Array類的實例,它們只是集合類中的一種,集合類的功能重要通過實現System.Collection名稱空間中的接口而獲得的。
System.Collection名稱空間中的幾個接口提供了基本的功能集合:
實現它的集合:
Public class Animals : CollectionBase { public void Add(Animal newAnimal) { List.Add(newAnimal); } public void Remove(Animal oldAnimal) { List.Remove(oldAnimal); } public Animals() { } }
如果要通過索引訪問,就要添加索引符。添加索引符如下:
public class Animals : CollectionBase { ... public Animal this[int animalIndex] { get { return (Animal)List[animalIndex]; } set { List[animalIndex] = value; } } }
自定義Dictionary,使可以通過關鍵字訪問
和上一個集合的實現例子非常類似,但是還是有一定的差別。要實現IDictionary接口,所以我們可以繼承DictionaryBase,具體細節如下:
public class Animals : DictionaryBase { public void Add(string newID, Animal newAnimal) { Dictionary.Add(newID, newAnimal); } public void Remove(string oldID) { Dictionary.Remove(oldID); } public Animals() {} public Animal this[string animalID] { get { return (Animal)Dictionary[animalID]; } set { Dictionary[animalID] = value; } } }