题
可能的重复:
优先排队。净
这个问题 是类似的,但我想确切地知道:
是否有任何类/struct/...中。净的优先排队?就像在STL有 priority_queue
这一点。它接受 比较 功能,以支持制。
最好的事情我找到。净是 SortedList< 关键,值> 这种这是价值观的关键。这样一种解决方案是实现一个自定义 比较 接口,为关键类。但我不能分开我的元素进Key/Value对。我已经原子元件,必须排队根据他们的价值观有一个自定义功能。
那么,是否有任何收集类。净接受一个比较功能于排序的这是元素呢?
是否有任何方式获得。净类(也许 。),支持这种功能?
注:
- 我知道,许多第三方实现的真正良好的课程。也许是一个很好的例子 PowerCollections.但是我想让t快速和简单的解决方案,使用现有的课程中。净
- 我使用。净框架3.5和C#;)
解决方案
你可以使用 SortedDictionary 级,这是通用的。
你可以指定一个比较器的对象 构造, ,这应当处理的优先级进行比较的对象:
public class DataComparer : IComparer<Data>
{
public Int32 Compare(Data a, Data b)
{
if (a == null && b == null)
return 0;
if (a == null)
return -1;
if (b == null)
return +1;
return a.Priority.CompareTo(b.Priority);
}
}
SortedDictionary<Data, Data> priQueue = new SortedDictionary<Data, Data>(
new DataComparer());
其他提示
你可能只是实现类在类和创建特定的比较器内的类,这样你就可以使用IList.Sort()?
不隶属于 StackOverflow