- 如何创建一个SortedList?
- 如何从SortedList中删除元素?
- 如何在SortedList中检查键/值对的可用性?
重要事项:
- SortedList类实现IEnumerable, ICollection, 词典和可克隆接口。
- 在SortedList中, 可以通过元素的键或索引来访问元素。
- SortedList对象在内部维护两个数组来存储列表的元素, 即, 一个数组用于键, 另一个数组用于关联的值。
- 在此, 键不能为null, 但值可以为null。
- SortedList对象的容量是它可以容纳的键/值对的数量。
- 在SortedList中, 不允许重复的键。
- 在SortedList中, 由于非通用集合, 你可以存储相同类型和不同类型的值。如果在程序中使用通用SortedList, 则值的类型必须相同。
- 在SortedList中, 你不能将不同数据类型的键存储在同一SortedList中, 因为编译器将引发异常。因此, 始终将键添加到相同类型的SortedList中。
- 你也可以将SortedList的键/值对转换为DictionaryEntry。
SortedList():它用于创建SortedList类的实例, 该实例为空, 具有默认的初始容量, 并根据添加到SortedList对象的每个键实现的IComparable接口进行排序。
第1步:借助using关键字, 在程序中包含System.Collections命名空间:
using System.Collections;
第2步:使用SortedList类创建一个SortedList, 如下所示:
SortedList list_name = new SortedList();
第三步:如果要在SortedList中添加键/值对, 请使用Add()方法在你的SortedList中添加键/值对。而且, 你也可以在不使用Add()方法的情况下将键/值对存储在SortedList中, 这种语法称为集合初始化语法, 如以下示例所示。
步骤4:使用以下命令访问SortedList的键/值对三不同的方式:
for循环:
你可以使用for循环访问SortedList的键/值对。
例子:
for ( int x = 0;
x <
my_slist1.Count;
x++)
{
Console.WriteLine( "{0} and {1}" , my_slist1.GetKey(x), my_slist1.GetByIndex(x));
}
使用索引:
你可以使用索引访问SortedList的各个值。你需要将键或索引作为参数传递, 以找到相应的值。如果指定的键不可用, 则编译器将引发错误。
例子:
Console.WriteLine( "Value is:{0}" , my_slist1[1.04]);
string x = ( string )my_slist[1.02];
Console.WriteLine(x);
foreach循环:
你可以使用foreach循环来访问SortedList的键/值对。
例子:
foreach (DictionaryEntry pair in my_slist1)
{
Console.WriteLine( "{0} and {1}" , pair.Key, pair.Value);
}
例子:
//C# program to illustrate how
//to create a sortedlist
using System;
using System.Collections;
class GFG {//Main Method
static public void Main()
{//Creating a sortedlist
//Using SortedList class
SortedList my_slist1 = new SortedList();
//Adding key/value pairs in
//SortedList using Add() method
my_slist1.Add(1.02, "This" );
my_slist1.Add(1.07, "Is" );
my_slist1.Add(1.04, "SortedList" );
my_slist1.Add(1.01, "Tutorial" );
foreach (DictionaryEntry pair in my_slist1)
{
Console.WriteLine( "{0} and {1}" , pair.Key, pair.Value);
}
Console.WriteLine();
//Creating another SortedList
//using Object Initializer Syntax
//to initalize sortedlist
SortedList my_slist2 = new SortedList() {
{ "b.09" , 234 }, { "b.11" , 395 }, { "b.01" , 405 }, { "b.67" , 100 }};
foreach (DictionaryEntry pair in my_slist2)
{
Console.WriteLine( "{0} and {1}" , pair.Key, pair.Value);
}
}
}
输出如下:
1.01 and Tutorial1.02 and This1.04 and SortedList1.07 and Isb.01 and 405b.09 and 234b.11 and 395b.67 and 100
如何从SortedList中删除元素?
- 明确:此方法用于从SortedList对象中删除所有元素。
- 去掉:此方法用于从SortedList对象中删除具有指定键的元素。
- RemoveAt:此方法用于删除SortedList对象指定索引处的元素。
//C# program to illustrate how to
//remove key/value pairs from
//the sortedlist
using System;
using System.Collections;
class GFG {//Main Method
static public void Main()
{//Creating a sortedlist
//Using SortedList class
SortedList my_slist = new SortedList();
//Adding key/value pairs in SortedList
//Using Add() method
my_slist.Add(1.02, "This" );
my_slist.Add(1.07, "Is" );
my_slist.Add(1.04, "SortedList" );
my_slist.Add(1.01, "Tutorial" );
foreach (DictionaryEntry pair in my_slist)
{
Console.WriteLine( "{0} and {1}" , pair.Key, pair.Value);
}
Console.WriteLine();
//Remove value having 1.07 key
//Using Remove() method
my_slist.Remove(1.07);
//After Remove() method
foreach (DictionaryEntry pair in my_slist)
{
Console.WriteLine( "{0} and {1}" , pair.Key, pair.Value);
}
Console.WriteLine();
//Remove element at index 2
//Using RemoveAt() method
my_slist.RemoveAt(2);
//After RemoveAt() method
foreach (DictionaryEntry pair in my_slist)
{
Console.WriteLine( "{0} and {1}" , pair.Key, pair.Value);
}
Console.WriteLine();
//Remove all key/value pairs
//Using Clear method
my_slist.Clear();
Console.WriteLine( "The total number of key/value pairs" +
" present in my_slist:{0}" , my_slist.Count);
}
}
输出如下:
1.01 and Tutorial1.02 and This1.04 and SortedList1.07 and Is1.01 and Tutorial1.02 and This1.04 and SortedList1.01 and Tutorial1.02 and ThisThe total number of key/value pairs present in my_slist:0
如何在SortedList中检查键/值对的可用性? 在SortedList中, 可以使用以下方法检查给定对是否存在:
- 包含:此方法用于检查SortedList对象是否包含特定键。
- ContainsKey:此方法用于检查SortedList对象是否包含特定键。
- 包含值:此方法用于检查SortedList对象是否包含特定值。
//C# program to illustrate how to
//check the given key or value
//present in the sortedlist or not
using System;
using System.Collections;
class GFG {//Main Method
static public void Main()
{//Creating a sortedlist
//Using SortedList class
SortedList my_slist = new SortedList();
//Adding key/value pairs in
//SortedList using Add() method
my_slist.Add(1.02, "This" );
my_slist.Add(1.07, "Is" );
my_slist.Add(1.04, "SortedList" );
my_slist.Add(1.01, "Tutorial" );
//Using Contains() method to check
//the specified key is present or not
if (my_slist.Contains(1.02) == true )
{
Console.WriteLine( "Key is found...!!" );
}else
{
Console.WriteLine( "Key is not found...!!" );
}//Using ContainsKey() method to check
//the specified key is present or not
if (my_slist.ContainsKey(1.03) == true )
{
Console.WriteLine( "Key is found...!!" );
}
else
{
Console.WriteLine( "Key is not found...!!" );
}//Using ContainsValue() method to check
//the specified value is present or not
if (my_slist.ContainsValue( "Is" ) == true )
{
Console.WriteLine( "Value is found...!!" );
}else
{
Console.WriteLine( "Value is not found...!!" );
}
}
}
【C# SortedList用法示例介绍】输出如下:
Key is found...!!Key is not found...!!Value is found...!!
推荐阅读
- C#从ArrayList中删除一系列元素
- C# RichTextBox类用法介绍
- C#文字框控件用法介绍
- C#元组 TupleT1类用法介绍
- C#工具提示类用法介绍
- C元组 TupleT1,T2类
- C# TupleT1,T2,T3类
- C#| TupleT1,T2,T3,T4类
- 虚拟机篇 苹果电脑mac安装win7系统图文详细教程