在C#中,SortedDictionary是一个基于红黑树实现的键值对集合,它可以保持键的顺序。要创建一个SortedDictionary,你需要使用SortedDictionary
类,并为其提供一个比较器(如果需要的话)。以下是一个简单的示例:
using System; using System.Collections.Generic; class Program { static void Main() { // 创建一个SortedDictionary,键和值都是整数 SortedDictionarysortedDictionary = new SortedDictionary (); // 添加键值对 sortedDictionary.Add(3, 30); sortedDictionary.Add(1, 10); sortedDictionary.Add(2, 20); // 遍历SortedDictionary foreach (KeyValuePair entry in sortedDictionary) { Console.WriteLine($"Key: {entry.Key}, Value: {entry.Value}"); } } }
在这个示例中,我们创建了一个SortedDictionary
对象,并添加了三个键值对。然后,我们遍历SortedDictionary并输出每个键值对。
如果你需要根据自定义对象创建SortedDictionary,你需要实现IComparer
接口并提供一个比较器。例如:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 创建一个SortedDictionary,键和值都是自定义对象
SortedDictionary sortedDictionary = new SortedDictionary(new MyObjectComparer());
// 添加键值对
sortedDictionary.Add(new MyObject(3, "three"), 30);
sortedDictionary.Add(new MyObject(1, "one"), 10);
sortedDictionary.Add(new MyObject(2, "two"), 20);
// 遍历SortedDictionary
foreach (KeyValuePair entry in sortedDictionary)
{
Console.WriteLine($"Key: {entry.Key}, Value: {entry.Value}");
}
}
}
class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
public MyObject(int id, string name)
{
Id = id;
Name = name;
}
}
class MyObjectComparer : IComparer
{
public int Compare(MyObject x, MyObject y)
{
// 根据Id进行比较
return x.Id.CompareTo(y.Id);
}
}
在这个示例中,我们创建了一个SortedDictionary
对象,并使用自定义的比较器MyObjectComparer
对MyObject
实例进行排序。