C# 排序列表(SortedList)

C# 集合 C# 集合

SortedList 類代表了一系列按照鍵來排序的鍵/值對,這些鍵值對可以通過鍵和索引來訪問。

排序列表是數(shù)組和哈希表的組合。它包含一個可使用鍵或索引訪問各項的列表。如果您使用索引訪問各項,則它是一個動態(tài)數(shù)組(ArrayList),如果您使用鍵訪問各項,則它是一個哈希表(Hashtable)。集合中的各項總是按鍵值排序。

SortedList 類的方法和屬性

下表列出了 SortedList 類的一些常用的 屬性

屬性描述
Capacity 獲取或設置 SortedList 的容量。
Count獲取 SortedList 中的元素個數(shù)。
IsFixedSize獲取一個值,表示 SortedList 是否具有固定大小。
IsReadOnly獲取一個值,表示 SortedList 是否只讀。
Item獲取或設置與 SortedList 中指定的鍵相關的值。
Keys獲取 SortedList 中的鍵。
Values獲取 SortedList 中的值。

下表列出了 SortedList 類的一些常用的 方法

序號方法名 & 描述
1public virtual void Add( object key, object value );
向 SortedList 添加一個帶有指定的鍵和值的元素。
2public virtual void Clear();
從 SortedList 中移除所有的元素。
3public virtual bool ContainsKey( object key );
判斷 SortedList 是否包含指定的鍵。
4public virtual bool ContainsValue( object value );
判斷 SortedList 是否包含指定的值。
5public virtual object GetByIndex( int index );
獲取 SortedList 的指定索引處的值。
6public virtual object GetKey( int index );
獲取 SortedList 的指定索引處的鍵。
7public virtual IList GetKeyList();
獲取 SortedList 中的鍵。
8public virtual IList GetValueList();
獲取 SortedList 中的值。
9public virtual int IndexOfKey( object key );
返回 SortedList 中的指定鍵的索引,索引從零開始。
10public virtual int IndexOfValue( object value );
返回 SortedList 中的指定值第一次出現(xiàn)的索引,索引從零開始。
11public virtual void Remove( object key );
從 SortedList 中移除帶有指定的鍵的元素。
12public virtual void RemoveAt( int index );
移除 SortedList 的指定索引處的元素。
13public virtual void TrimToSize();
設置容量為 SortedList 中元素的實際個數(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]);
         }
      }
   }
}

當上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結果:

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

C# 集合 C# 集合