C# 集合系列 =>排序列表(SortedList)

1,定义

命名空间:

System.Collections

程序集:

System.Collections.NonGeneric.dll

继承:

Object—> SortedList 

实现:

ICollection  IDictionary  IEnumerable  ICloneable

2,注解 

 SortedList对象在内部维护两个用于存储列表元素的数组; 即,一个数组用于存储键,另一个数组用于关联值。 每个元素都是一个可作为对象进行访问的键/值对 DictionaryEntry 。 键不能为 null ,但值可以为。


对象的容量 SortedList 是可容纳的元素数 SortedList 。 向添加元素时,会 SortedList 根据需要通过重新分配来自动增加容量。 可以通过调用 TrimToSize 或显式设置属性来减少容量 Capacity 。


仅 .NET Framework: 对于非常大的 SortedList 对象,可以通过 enabled <gcAllowVeryLargeObjects> true 在运行时环境中将配置元素的属性设置为,来将64位系统上的最大容量增加到2000000000个元素。


对象的元素 SortedList 根据创建时指定的特定实现进行排序, IComparer SortedList 或根据 IComparable 键本身提供的实现进行排序。 在任一情况下,都 SortedList 不允许使用重复键。


索引顺序基于排序顺序。 添加元素时,该元素 SortedList 以正确的排序顺序插入,并且索引会相应地进行调整。 删除元素时,索引编制还会相应地进行调整。 因此,当在对象中添加或删除元素时,特定键/值对的索引可能会更改 SortedList 。


由于排序,对对象的操作 SortedList 往往比对象上的操作慢 Hashtable 。 但是, SortedList 通过允许通过关联的键或索引来访问值,可以提供更大的灵活性。
可以使用整数索引访问此集合中的元素。 此集合中的索引从零开始。

3,SortedList 类的方法和属性

1,属性

属性描述
Capacity获取或设置 SortedList 的容量。
Count获取 SortedList 中的元素个数。
IsFixedSize获取一个值,表示 SortedList 是否具有固定大小。
IsReadOnly获取一个值,表示 SortedList 是否只读。
Item获取或设置与 SortedList 中指定的键相关的值。
Keys获取 SortedList 中的键。
Values获取 SortedList 中的值。

2,方法

Add(Object,Object)

将带有指定键和值的元素添加到 SortedList  对象。

Clear()

从 SortedList 对象中移除所有元素。

Clone()

创建  SortedList 对象的浅表副本。

Contains(Object)

确定 SortedList 对象是否包含特定键。

ContainsKey(Object)

确定 SortedList 对象是否包含特定键。

ContainsValue(Object)

确定 SortedList  对象是否包含特定值。

CopyTo(Array,Int32)

从指定数组索引开始将  SortedList 元素复制到一维 Array  对象中。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetByIndex(Int32)

获取 SortedList 对象的指定索引处的值。

GetEnumerator()

返回一个循环访问 IDictionaryEnumerator 对象的  SortedList 对象。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetKey(Int32)

获取  SortedList 对象的指定索引处的键。

GetKeyList()

获取 SortedList 对象中的键。

GetType()

获取当前实例的 Type。

(继承自 Object)
GetValueList()

获取 SortedList 对象中的值。

IndexOfKey(Object)

返回 SortedList 对象中指定键的从零开始的索引。

IndexOfValue(Object)

返回指定的值在 SortedList 对象中第一个匹配项的从零开始的索引。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
Remove(Object)

从 SortedList 对象中移除带有指定键的元素。

RemoveAt(Int32)

移除 SortedList 对象的指定索引处的元素。

SetByIndex(Int32,Object)

替换 SortedList 对象中指定索引处的值。

Synchronized(SortedList)

返回 SortedList 对象的同步(线程安全)包装。

ToString()

返回表示当前对象的字符串。

(继承自 Object)
TrimToSize()

将容量设置为 SortedList 对象中元素的实际数目。

 实例:

using System;
using System.Collections;
public class SamplesSortedList  {

   public static void Main()  {

      // Creates and initializes a new SortedList.
      SortedList mySL = new SortedList();
       mySL.Add("Third", "!");
       mySL.Add("Second", "World");
       mySL.Add("First", "Hello");

      // Displays the properties and values of the SortedList.
      Console.WriteLine( "mySL" );
      Console.WriteLine( "  Count:    {0}", mySL.Count );
      Console.WriteLine( "  Capacity: {0}", mySL.Capacity );
      Console.WriteLine( "  Keys and Values:" );
      PrintKeysAndValues( mySL );
   }

   public static void PrintKeysAndValues( SortedList myList )  {
      Console.WriteLine( "\t-KEY-\t-VALUE-" );
      for ( int i = 0; i < myList.Count; i++ )  {
         Console.WriteLine( "\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i) );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

mySL
  Count:    3
  Capacity: 16
  Keys and Values:
    -KEY-    -VALUE-
    First:    Hello
    Second:    World
    Third:    !
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值