当前位置: 首页 > news >正文

网站建设动态代码上海优化seo排名

网站建设动态代码,上海优化seo排名,wordpress调用自定义分类标题,如何做网站规范.NET6 中的 PriorityQueueIntro.NET 6 中引入了一个新的集合类型 PriorityQueue#xff0c;正如它的名字那样#xff0c;在普通的 Queue 基础之上增加了优先级的支持#xff0c;接下来就一起来看一下怎么使用#xff0c;以及一些常用的使用场景介绍。Get Started来看一个简… .NET6 中的 PriorityQueueIntro.NET 6 中引入了一个新的集合类型 PriorityQueue正如它的名字那样在普通的 Queue 基础之上增加了优先级的支持接下来就一起来看一下怎么使用以及一些常用的使用场景介绍。Get Started来看一个简单的使用示例var priorityQueue  new PriorityQueuestring, int(); priorityQueue.Enqueue(Alice, 100); priorityQueue.EnqueueRange(Enumerable.Range(1, 5).Select(x  ($X_{x}, 100 - x)) );while (priorityQueue.TryDequeue(out var element, out var priority)) {Console.WriteLine($Element:{element}, {priority}); } 输出示例可以看到输出的顺序和我们添加的顺序是相反的 PriorityQueue 在 Dequeue 的时候是从优先级最小开始的值越小优先级越高优先级越高越优先输出如果我们希望最大先输出是不是可以呢答案是肯定的只是我们需要指定我们自己的优先级比较规则就可以了可以参考后面的示例Scenes借助带优先级的自动排序我们可以做一些自动排序的需求的时候可以考虑使用 PriorityQueueMessage Queue借助 PriorityQueue 可以来实现一个优先级消息队列允许用户在发消息的时候指定一个消息的优先级在消费的时候就会按优先级var random  new Random();var queue  new PriorityQueuestring, int(); for (var i  1; i  10; i) {queue.Enqueue($Message_{i}, random.Next(10, 100)); }while (queue.TryDequeue(out var message, out _)) {Console.WriteLine(message); } 在上面的示例里我们默认指定了一个 int 作为 Priority 的类型并入队了一些消息但是往往会有很多的消息可能会出现优先级相同的情况我们可以使用时间和int 作为一个联合的 Priority 类型可以参考下面的示例var random  new Random();var queue  new PriorityQueuestring, (DateTime time, int priority)(new DateTimePriorityComparer());var time  DateTime.UtcNow; Thread.Sleep(1000); for (var k  0; k  3; k) {for (var i  1; i  3; i){queue.Enqueue($Message_{i}_{k}, (i  2 ? time : DateTime.UtcNow, random.Next(5, 10)));} }while (queue.TryDequeue(out var message, out var priority)) {Console.WriteLine(${message}, {priority.priority}, {priority.time}); } 输出示例如下由上面的结果可以看出来在 priority一样的情况下我们会先处理时间较小的消息也可以根据自己的需要进行定制排序方式自定义 Priority 比较逻辑即可上面的自定义优先级比较代码如下internal class DateTimePriorityComparer : IComparer(DateTime time, int priority) {public int Compare((DateTime time, int priority) x, (DateTime time, int priority) y){var priorityComparison  x.priority.CompareTo(y.priority);if (priorityComparison ! 0) return priorityComparison;return x.time.CompareTo(y.time);} } Rank在很多做排行榜的应用中也可以使用 PriorityQueue 来实现比如我们来做一个学生成绩的排名来看下面的示例代码var list  new List(string name, int score) {(Mike, 99),(Ming, 100),(Jane, 96),(Yi, 94),(Harry, 90), };var priorityQueue  new PriorityQueuestring, int(); priorityQueue.EnqueueRange(list);Console.WriteLine(--Unordered:); foreach (var item in priorityQueue.UnorderedItems) {Console.WriteLine($Name:{item.Element}, score:{item.Priority}); }Console.WriteLine(--Ordered:); while (priorityQueue.TryDequeue(out var name, out var score)) {Console.WriteLine($Name:{name}, score:{score}); }Console.WriteLine(-----TOP 3); priorityQueue  new PriorityQueuestring, int(new High2LowComparer()); priorityQueue.EnqueueRange(list); var rank  0; while (rank  3  priorityQueue.TryDequeue(out var name, out var score)) {Console.WriteLine($Rank({rank}):Name:{name}, score:{score}); } 上面的 list 就是一个成绩清单随便写了几个测试数据通过 PriorityQueue 的 UnorderedItems 我们可以拿到排序之前的数据也是我们加入队列(Enqueue)的顺序默认的比较是小的在前也就是成绩低的在前那我们想按从大到小排序的话就需要自定义比较方式。上面的 High2LowComparer 就是一个自定义的比较其实就是把比较的结果取了一个反代码如下internal class High2LowComparer : IComparerint {public int Compare(int x, int y){return y.CompareTo(x);} } 上面的输出结果如下MoreRedis 里有一个 zset(sortedSet) 类型的数据也可以做类似的事情但是 zset 和 PriorityQueue 还是有一些不同的zset 是一个 set是一个自动去重的集合而 PriorityQueue 还是一个 Queue 不会去重zset 可以修改对应元素的 priorityscore)但是 PriorityQueue 目前不支持修改元素对应的优先级PriorityQueue  可以解决我们的一些问题但是有一些使用要注意的地方首先如果 Priority 是一样的话输出的顺序是有可能不一样的这是由它内部的实现算法决定的不能严格的保证顺序PriorityQueue 是非线程安全的需要注意线程安全问题PriorityQueue 中的 Peek 方法只会获取 queue 里即将出队的元素但是不会从队列中移除这个元素Referenceshttps://devblogs.microsoft.com/dotnet/announcing-net-6-preview-2/https://github.com/dotnet/runtime/blob/v6.0.0-preview.2.21154.6/src/libraries/System.Collections/src/System/Collections/Generic/PriorityQueue.cshttps://github.com/WeihanLi/SamplesInPractice/blob/master/net6sample/PriorityQueueSample/Program.cs
http://wiki.neutronadmin.com/news/54111/

相关文章:

  • 在那做网站东莞网络营销推广公司
  • 武安建设局网站一锅汤资源网站建设大全
  • 电商网站开发面试题网站建设 兼职 外包
  • 中山全麦网站建设建设网站查询密码
  • 怎样在自己网站上传产品大型网站维护费一年多少
  • 网站素材图片美容美发网站模板
  • 网站设置快捷方式合肥网站关键词优化
  • 网站建设 策划网页无法打开
  • 网站编辑的栏目怎么做中国现代公路建设有限公司网站
  • 新城区网站建设外贸网站模板设计
  • 传奇网站如何建设discuz是什么东西
  • 高端网站建设费用情况山东省工程建设招标信息网站
  • 企业如何通过地方网站宣传网站网站服务器一年的费用
  • 邢台网站维护具体的网站建设
  • 网站建设需要几个阶段网站上面的体验卡怎么做
  • vs2013做网站保存的格式制作书签的作文
  • 广东长海建设工程有限公司网站制作和维系一个网站的费用
  • 深圳电信网站备案做网页价格
  • 网站无法上传图片wordpress获取评论用户名
  • 做国内打不开的网站吗网站站建设建技设术技术
  • 企业网站建站公司郑州吉林省吉林市昌邑区
  • 如何搭建网站教程视频网页制作基础教程第二版答案
  • 工业网站开发商wordpress女装小说
  • 中国建设网官方网站企业网银愿意做cps的网站
  • 永久免费ppt下载网站网站服务器建设教程视频
  • 5网站建设公司可以写代码的网站
  • 网站建设税率多少站长之家ip地址归属查询
  • 烟台网站建设托管如何替换网站ico图标
  • 优惠券领取网站开发郑州做响应式网站
  • 沈阳建网站公司wordpress和shopify区别