我们有一个
SortedList<Resource, Resource> resources =
new SortedList<Resource, Resource>(new ResourceIdle());
我们在模拟中使用的。通过这种方式初始化此资源列表,因为我们希望在任何时间点传递不同的比较器。我们遇到的第一个问题是
SortedList<>
需要在比较器中进行额外的比较,以便我们可以添加具有相同属性的Resource
的不同实例。例如,如果比较器看起来像: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));
}
}
那么当优先级相同时,我们必须进行额外的比较,否则,对于具有相同键的条目,我们将获得一个异常(exception)。所以我的问题是,还有另一种方法可以实现这一目标吗?作为第二个问题,是否有比
SortedList<>
更快的命令来订购大量对象的? 最佳答案
好吧,SortedDictionary<,>
具有不同的性能特征-它取决于您正在使用它。 MSDN比较这两者有很多细节:
关于C#比SortedList <>更快的排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3816183/