у нас есть
SortedList<Resource, Resource> resources =
new SortedList<Resource, Resource>(new ResourceIdle());
, которые мы используем в нашей симуляции. Этот список ресурсов инициализируется таким образом, потому что мы хотим передавать разные компараторы в любой момент времени. Первая проблема, с которой мы столкнулись, заключается в том, что SortedList<>
требует дополнительного сравнения в компараторе, чтобы мы могли добавлять разные экземпляры Resource
с одинаковыми свойствами. Например, если 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<>
для заказа большого количества объектов?