C # более быстрая сортировка, чем SortedList <>

у нас есть

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 <> для упорядочивания большого количества объектов?

7
задан Mike Fielden 28 September 2010 в 19:13
поделиться