當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# SortedList用法及代碼示例


SortedList 類是根據鍵排序的(鍵,值)對的集合。這些對可以通過鍵和索引(從零開始的索引)訪問。它位於 System.Collections 命名空間下。

SortedList 類的特征:

  • SortedList 元素可以通過其鍵或索引進行訪問。
  • SortedList 對象內部維護兩個數組來存儲列表的元素,即一個數組用於鍵,另一個數組用於關聯值。
  • 鍵不能為空,但值可以。
  • SortedList 對象的容量是 SortedList 可以容納的元素數量。
  • SortedList 不允許重複的鍵。
  • 由於排序的原因,對 SortedList 對象的操作往往比對 Hashtable 對象的操作慢。
  • 可以使用整數索引來訪問此集合中的元素。該集合中的索引是從零開始的。

Constructors

構造函數 說明
SortedList() 初始化 SortedList 類的新實例,該實例為空,具有默認初始容量,並根據添加到 SortedList 對象的每個鍵實現的 IComparable 接口進行排序。
SortedList(IComparer) 初始化 SortedList 類的新實例,該實例為空,具有默認初始容量,並根據指定的 IComparer 接口進行排序。
排序列表(IComparer,Int32) 初始化 SortedList 類的新實例,該實例為空、具有指定的初始容量,並根據指定的 IComparer 接口進行排序。
SortedList(IDictionary) 初始化 SortedList 類的新實例,該實例包含從指定字典複製的元素,具有與複製的元素數量相同的初始容量,並根據每個鍵實現的 IComparable 接口進行排序。
SortedList(IDictionary, IComparer) 初始化 SortedList 類的新實例,該實例包含從指定字典複製的元素,具有與複製的元素數量相同的初始容量,並根據指定的 IComparer 接口進行排序。
排序列表(Int32) 初始化 SortedList 類的新實例,該實例為空、具有指定的初始容量,並根據添加到 SortedList 對象的每個鍵實現的 IComparable 接口進行排序。

例子:


// C# Program to create a SortedList 
using System; 
using System.Collections; 
  
class Geeks { 
  
    // Main Method 
    public static void Main(String[] args) 
    { 
  
        // Creating object of SortedList 
        // fslist is the SortedList object 
        SortedList fslist = new SortedList(); 
  
        // Count property is used to get the 
        // number of key/value pairs in fslist 
        // It will give 0 as no pairs are present 
        Console.WriteLine(fslist.Count); 
    } 
} 

輸出:

0

Properties

屬性 說明
Capacity 獲取或設置SortedList對象的容量。
Count 獲取 SortedList 對象中包含的元素數量。
IsFixedSize 獲取一個值,該值指示SortedList 對象是否具有固定大小。
IsReadOnly 獲取一個值,該值指示SortedList 對象是否為隻讀。
IsSynchronized 獲取一個值,該值指示對 SortedList 對象的訪問是否同步(線程安全)。
項目[對象] 獲取和設置與 SortedList 對象中的特定鍵關聯的值。
Keys 獲取 SortedList 對象中的鍵。
Values 獲取 SortedList 對象中的值。

例子:


// C# Program to illustrate the 
// properties of SortedList Class 
using System; 
using System.Collections; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating an SortedList 
        SortedList mySortedList = new SortedList(); 
  
        // Adding elements to SortedList 
        mySortedList.Add("1", "one"); 
        mySortedList.Add("2", "two"); 
        mySortedList.Add("3", "three"); 
        mySortedList.Add("4", "four"); 
        mySortedList.Add("5", "five"); 
  
        // Checking if a SortedList 
        // object has a fixed size 
        Console.WriteLine(mySortedList.IsFixedSize); 
  
        // Checking if the created 
        // SortedList is read-only or not 
        Console.WriteLine(mySortedList.IsReadOnly); 
    } 
} 

輸出:

False
False

Methods

方法 說明
Add(Object, Object) 將具有指定鍵和值的元素添加到 SortedList 對象。
Clear() 從 SortedList 對象中刪除所有元素。
Clone() 創建 SortedList 對象的淺拷貝。
Contains(Object) 確定 SortedList 對象是否包含特定鍵。
ContainsKey(Object) 確定 SortedList 對象是否包含特定鍵。
ContainsValue(Object) 確定 SortedList 對象是否包含特定值。
複製到(數組,Int32) 從數組中的指定索引開始,將 SortedList 元素複製到一維 Array 對象。
Equals(Object) 確定指定對象是否等於當前對象。
按索引獲取(Int32) 獲取 SortedList 對象的指定索引處的值。
GetEnumerator() 返回一個 IDictionaryEnumerator 對象,該對象迭代 SortedList 對象。
GetHashCode() 用作默認的哈希函數。
獲取 key (Int32) 獲取 SortedList 對象的指定索引處的鍵。
GetKeyList() 獲取 SortedList 對象中的鍵。
GetType() 獲取當前實例的類型。
GetValueList() 獲取 SortedList 對象中的值。
IndexOfKey(Object) 返回 SortedList 對象中指定鍵的從零開始的索引。
IndexOfValue(Object) 返回 SortedList 對象中指定值第一次出現的從零開始的索引。
MemberwiseClone() 創建當前對象的淺拷貝。
Remove(Object) 從 SortedList 對象中刪除具有指定鍵的元素。
刪除 (Int32) 刪除 SortedList 對象的指定索引處的元素。
按索引設置(Int32,對象) 替換 SortedList 對象中特定索引處的值。
Synchronized(SortedList) 返回 SortedList 對象的同步(線程安全)包裝器。
ToString() 返回表示當前對象的字符串。
TrimToSize() 將容量設置為 SortedList 對象中的實際元素數。

示例 1:


// C# code to remove all 
// elements from a SortedList 
using System; 
using System.Collections; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating an SortedList 
        SortedList mySortedList = new SortedList(); 
  
        // Adding elements to SortedList 
        mySortedList.Add("1", "1st"); 
        mySortedList.Add("2", "2nd"); 
        mySortedList.Add("3", "3rd"); 
        mySortedList.Add("4", "4th"); 
        mySortedList.Add("5", "5th"); 
        mySortedList.Add("6", "6th"); 
        mySortedList.Add("7", "7th"); 
  
        // Displaying number of elements 
        Console.WriteLine("Number of elements in SortedList is : "
                          + mySortedList.Count); 
  
        // Displaying capacity 
        Console.WriteLine("capacity of SortedList is : "
                          + mySortedList.Capacity); 
  
        // Removing all elements from SortedList 
        mySortedList.Clear(); 
  
        // Displaying number of elements 
        Console.WriteLine("Number of elements in SortedList is : "
                          + mySortedList.Count); 
  
        // Displaying capacity 
        Console.WriteLine("capacity of SortedList is : "
                          + mySortedList.Capacity); 
    } 
} 

輸出:

Number of elements in SortedList is : 7
capacity of SortedList is : 16
Number of elements in SortedList is : 0
capacity of SortedList is : 16

示例 2:


// C# code to check if a SortedList 
// object contains a specific value 
using System; 
using System.Collections; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating an SortedList 
        SortedList mySortedList = new SortedList(); 
  
        // Adding elements to SortedList 
        mySortedList.Add("1", "1st"); 
        mySortedList.Add("2", "2nd"); 
        mySortedList.Add("3", "3rd"); 
        mySortedList.Add("4", "4th"); 
  
        // Checking if a SortedList object 
        // contains a specific value 
        Console.WriteLine(mySortedList.ContainsValue(null)); 
    } 
} 

輸出:

False

參考:



相關用法


注:本文由純淨天空篩選整理自Kirti_Mangal大神的英文原創作品 C# | SortedList Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。