Я хочу написать программу, которая имитирует список ожидания на основе приоритета и времени прибытия. Приоритет имеет более высокий приоритет, чем время прибытия. Список будет содержать приоритет, время прибытия и имя. Я могу управлять одним ключевым приоритетом, именем или временем прибытия, именем. Как лучше совместить 2 ключа?
С# SortedList с несколькими ключами. Как мне реализовать SortedList (или другую структуру), используя 2 ключа (приоритет и время)?
Ответы (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);
}
}
}
}
person
jdweng
schedule
15.12.2015
Спасибо. Как раз то, что мне было нужно.
- person Ha Vu; 16.12.2015
Мне нравится, как вы закодировали метод CompareTo, он очень чистый.
- person Ha Vu; 16.12.2015
SortedSet
и передать ему свой собственныйIComparer<T>
- person Rob   schedule 15.12.2015