可能的重复:
优先排队。净

这个问题 是类似的,但我想确切地知道:

是否有任何类/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()?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top