у нас есть
SortedList<Resource, Resource> resources =
new SortedList<Resource, Resource>(new ResourceIdle());
, который мы используем в нашей симуляции. Этот список ресурсов инициализируется таким образом, потому что мы хотим передавать разные компараторы в любой момент времени. Первая проблема заключается в том, что SortedList <>
требует дополнительного сравнения внутри компаратора, чтобы мы могли добавлять разные экземпляры ресурса
с одинаковыми свойствами. Например, если Comparer выглядит так:
public int Compare(Resource x, Resource y)
{
int priority1 = x.Priority;
int priority2 = y.Priority;
if (priority1 > priority2) {
return -1;
} else if (priority1 < priority2) {
return 1;
} else {
return (x.Id.CompareTo(y.Id));
}
}
, то мы должны провести дополнительное сравнение при одинаковых приоритетах, иначе мы получим исключение для записи с тем же ключом. Итак, мой вопрос: есть ли другой способ добиться этого? И второй вопрос: есть ли что-нибудь более быстрое, чем SortedList <>
для упорядочивания большого количества объектов?