位置:首页 > 高级语言 > C#在线教程 > C# SortedList类

C# SortedList类

SortedList类表示由键排序,并且通过键和索引访问键- 值对的集合。

一个排序列表是一个数组,哈希表的组合。它包含可使用键或索引来访问的项目的列表。如果使用一个索引访问项目,这是一个ArrayList,如果使用一键访问项目,这是一个Hashtable。集合的项总是由键值排序。

SortedList类的方法和属性

下表列出了一些排序列表类的常用属性:

属性 描述
Capacity 获取或设置排序列表的容量
Count 获取包含在排序列表元素的数量
IsFixedSize 获取一个值,指示排序列表是否具有固定大小
IsReadOnly 获取一个值,指示排序列表是否为只读
Item Gets and sets the value associated with a specific key in the SortedList.
Keys 获取的排序列表的键
Values 获取的排序列表(SortedList)中的值

下表列出了一些排序列表(SortedList)类的常用方法:

S.N 方法名称及用途
1 public virtual void Add( object key, object value ); 
将带有指定键和值到排序列表的元素
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 ); 
返回在排序列表中指定键从零开始的索引
10 public virtual int IndexOfValue( object value ); 
返回在SortedList中指定的值第一次出现的从零开始的索引
11 public virtual void Remove( object key ); 
删除从SortedList表中指定键的元素
12 public virtual void RemoveAt( int index ); 
删除SortedList中指定索引处的元素
13 public virtual void TrimToSize(); 
设置在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");
         }

         // get a collection of the keys. 
         ICollection key = sl.Keys;

         foreach (string k in key)
         {
            Console.WriteLine(k + ": " + sl[k]);
         }
      }
   }
}

让我们编译和运行上面的程序,这将产生以下结果:

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