C# 排序列表(SortedList)
SortedList 類代表了一系列按照鍵來(lái)排序的鍵/值對(duì),這些鍵值對(duì)可以通過(guò)鍵和索引來(lái)訪問(wèn)。
排序列表是數(shù)組和哈希表的組合。它包含一個(gè)可使用鍵或索引訪問(wèn)各項(xiàng)的列表。如果您使用索引訪問(wèn)各項(xiàng),則它是一個(gè)動(dòng)態(tài)數(shù)組(ArrayList),如果您使用鍵訪問(wèn)各項(xiàng),則它是一個(gè)哈希表(Hashtable)。集合中的各項(xiàng)總是按鍵值排序。
SortedList 類的方法和屬性
下表列出了 SortedList 類的一些常用的 屬性:
屬性 | 描述 |
---|---|
Capacity | 獲取或設(shè)置 SortedList 的容量。 |
Count | 獲取 SortedList 中的元素個(gè)數(shù)。 |
IsFixedSize | 獲取一個(gè)值,表示 SortedList 是否具有固定大小。 |
IsReadOnly | 獲取一個(gè)值,表示 SortedList 是否只讀。 |
Item | 獲取或設(shè)置與 SortedList 中指定的鍵相關(guān)的值。 |
Keys | 獲取 SortedList 中的鍵。 |
Values | 獲取 SortedList 中的值。 |
下表列出了 SortedList 類的一些常用的 方法:
序號(hào) | 方法名 & 描述 |
---|---|
1 | public virtual void Add(
object key,
object value
);
向 SortedList 添加一個(gè)帶有指定的鍵和值的元素。 |
2 | public virtual void Clear();
從 SortedList 中移除所有的元素。 |
3 | public virtual bool ContainsKey(
object key
);
判斷 SortedList 是否包含指定的鍵。 |
4 | public virtual bool ContainsValue(
object value
);
判斷 SortedList 是否包含指定的值。 |
5 | public virtual object GetByIndex(
int index
);
獲取 SortedList 的指定索引處的值。 |
6 | public virtual object GetKey(
int index
);
獲取 SortedList 的指定索引處的鍵。 |
7 | public virtual IList GetKeyList();
獲取 SortedList 中的鍵。 |
8 | public virtual IList GetValueList();
獲取 SortedList 中的值。 |
9 | public virtual int IndexOfKey(
object key
);
返回 SortedList 中的指定鍵的索引,索引從零開(kāi)始。 |
10 | public virtual int IndexOfValue(
object value
);
返回 SortedList 中的指定值第一次出現(xiàn)的索引,索引從零開(kāi)始。 |
11 | public virtual void Remove(
object key
);
從 SortedList 中移除帶有指定的鍵的元素。 |
12 | public virtual void RemoveAt(
int index
);
移除 SortedList 的指定索引處的元素。 |
13 | public virtual void TrimToSize();
設(shè)置容量為 SortedList 中元素的實(shí)際個(gè)數(shù)。 |
實(shí)例
下面的實(shí)例演示了排序列表(SortedList)的概念:
using System; using System.Collections; namespace CollectionsApplication { class Program { static void Main(string[] args) { SortedList sl = new SortedList(); sl.Add("001", "Zara Ali"); sl.Add("002", "Abida Rehman"); sl.Add("003", "Joe Holzner"); sl.Add("004", "Mausam Benazir Nur"); sl.Add("005", "M. Amlan"); sl.Add("006", "M. Arif"); sl.Add("007", "Ritesh Saikia"); if (sl.ContainsValue("Nuha Ali")) { Console.WriteLine("This student name is already in the list"); } else { sl.Add("008", "Nuha Ali"); } // 獲取鍵的集合 ICollection key = sl.Keys; foreach (string k in key) { Console.WriteLine(k + ": " + sl[k]); } } } }
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
001: Zara Ali 002: Abida Rehman 003: Joe Holzner 004: Mausam Banazir Nur 005: M. Amlan 006: M. Arif 007: Ritesh Saikia 008: Nuha Ali
更多建議: