所以基本上我有这样的东西:
private SortedDictionary<Priority, List<String>> example = new SortedDictionary<Priority, List<String>>(new PriorityComparer());
public void Submit(Priority priority, String test)
{
if (!example.ContainsKey(priority))
{
example.Add(priority, new List<String> { test });
// adds an entry with the key (Priority.Low) twice, why?
}
else
{
example[priority].Add(test); // never called
}
}仅仅是提交一堆测试元素:
Submit(Priority.Critical, "test4");
Submit(Priority.Low, "test");
Submit(Priority.Normal, "test3");
Submit(Priority.Low, "test2");优先级只是一个枚举,优先级范围从低(0)到关键(10)。这只是一个典型的枚举,没什么特别的。
优先级比较器:
public class PriorityComparer : IComparer<Priority>
{
public int Compare(Priority x, Priority y)
{
if (x > y)
{
return -1;
}
else
{
return 1;
}
}
}发布于 2012-03-20 15:51:30
您的比较实现不完整。当x返回y( == 0)时,你遗漏了大小写。
https://stackoverflow.com/questions/9783063
复制相似问题