c#

c# sorteddictionary怎样创建

小樊
82
2024-11-23 01:26:07
栏目: 编程语言

在C#中,SortedDictionary是一个基于红黑树实现的键值对集合,它可以保持键的顺序。要创建一个SortedDictionary,你需要使用SortedDictionary<TKey, TValue>类,并为其提供一个比较器(如果需要的话)。以下是一个简单的示例:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 创建一个SortedDictionary,键和值都是整数
        SortedDictionary<int, int> sortedDictionary = new SortedDictionary<int, int>();

        // 添加键值对
        sortedDictionary.Add(3, 30);
        sortedDictionary.Add(1, 10);
        sortedDictionary.Add(2, 20);

        // 遍历SortedDictionary
        foreach (KeyValuePair<int, int> entry in sortedDictionary)
        {
            Console.WriteLine($"Key: {entry.Key}, Value: {entry.Value}");
        }
    }
}

在这个示例中,我们创建了一个SortedDictionary<int, int>对象,并添加了三个键值对。然后,我们遍历SortedDictionary并输出每个键值对。

如果你需要根据自定义对象创建SortedDictionary,你需要实现IComparer<TKey>接口并提供一个比较器。例如:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 创建一个SortedDictionary,键和值都是自定义对象
        SortedDictionary<MyObject, int> sortedDictionary = new SortedDictionary<MyObject, int>(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<MyObject, int> 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<MyObject>
{
    public int Compare(MyObject x, MyObject y)
    {
        // 根据Id进行比较
        return x.Id.CompareTo(y.Id);
    }
}

在这个示例中,我们创建了一个SortedDictionary<MyObject, int>对象,并使用自定义的比较器MyObjectComparerMyObject实例进行排序。

0
看了该问题的人还看了