C#SortedList有多个键。如何使用2个键(优先级和时间)实现SortedList(或其他结构)?

时间:2015-12-15 04:04:54

标签: c# priority-queue sortedlist

我想编写一个程序,根据优先级和到达时间模拟等待列表。优先权在抵达时间上有较高的先例。该列表将包含优先级,到达时间和名称。我可以管理一个关键优先级,名称或到达时间,名称。组合2个键的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

尝试下面的代码。 CompareTo()方法允许您使用标准排序方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication61
{
    class Program
    {
        static void Main(string[] args)
        {
            SortedList<PriorityTime, string> sList = new SortedList<PriorityTime, string>();

        }
    }

    public class PriorityTime : IComparable<PriorityTime>
    {
        public int priority { get; set; }
        public DateTime time { get; set; }

        public int CompareTo(PriorityTime other)
        {
            if (other.priority != this.priority)
            {
                return this.priority.CompareTo(other.priority);
            }
            else
            {
                return this.time.CompareTo(other.time);
            }
        }
    }

}