c# - 如何在 C# 中更改 PriorityQueue 中包含的元素的优先级

标签 c# .net priority-queue

给定 .NET System.Collections.Generic.PriorityQueue 中包含的元素,如何就地更改其优先级值?如果这不可能,那么是否应该Dequeue() 该项目,并使用新的优先级值再次Enqueue() ?我在documentation中没有看到任何明显的东西,但请询问我是否错过了相关详细信息。

最佳答案

PriorityQueue<TElement,TPriority> 集合不可更新。支持更新需要维护更多状态,并且入队/出队操作会变得更慢,因此微软选择发布不可更新的版本。 GitHub 上有一个添加更新功能的提案,您可以通过投票支持该提案:

关于c# - 如何在 C# 中更改 PriorityQueue 中包含的元素的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75046421/

相关文章:

c# - 解决循环引用 (C#)

c# - 为什么我在 SignalR 上收不到以复杂对象作为参数的事件?

c# - 隐式运算符?

java - 删除优先级队列的尾元素

java - 获取PriorityQueue中的第K小元素(Java)

c# - 基于多个共享属性值的最小对象分组

c# - 从 Silverlight 中的文件夹加载资源 ".resx"

.net - 一个服务可以有多个端点吗?

.net - 不考虑字符串大小写的 VB.NET LINQ 查询

c - 近似保序霍夫曼代码