我有排序像这样的词典:如何从.NET字典中选择前10名?
var sortedDict = (from entry in dd
orderby entry.Value descending select entry
).ToDictionary(pair => pair.Key, pair => pair.Value);
我怎样才能选择此有序字典前10名?
我有排序像这样的词典:如何从.NET字典中选择前10名?
var sortedDict = (from entry in dd
orderby entry.Value descending select entry
).ToDictionary(pair => pair.Key, pair => pair.Value);
我怎样才能选择此有序字典前10名?
由于您订购的字典descending
,然后Take
荷兰国际集团前10个结果会选择TOP
10:
var sortedDict = (from entry in dd
orderby entry.Value descending
select entry
).Take(10)
.ToDictionary(pair => pair.Key, pair => pair.Value);
非常感谢,非常感谢 – Dedar 2012-04-21 06:05:12
你提到在您的查询降,我认为你需要最后10个OCCURENCES。如果是这样
var sortedDict = (from entry in dd orderby entry.Value descending select entry)
.Take(10)
.ToDictionary(pair => pair.Key, pair => pair.Value) ;
var sortedDict = dd.OrderByDescending(entry=>entry.Value)
.Take(10)
.ToDictionary(pair=>pair.Key,pair=>pair.Value);
如果你需要第10位,只是删除descending
,它会正常工作。
var sortedDict = (from entry in dd orderby entry.Value select entry)
.Take(10)
.ToDictionary(pair => pair.Key, pair => pair.Value) ;
var sortedDict = dd.OrderBy(entry=>entry.Value)
.Take(10)
.ToDictionary(pair=>pair.Key,pair=>pair.Value);
只需使用Take(10)
您需要使用Take()方法:
var sortedDict = (
from entry in dd
orderby entry.Value descending
select entry)
.Take(10)
.ToDictionary(pair => pair.Key, pair => pair.Value);
var sortedDict = (from entry in dd orderby entry.Value descending select entry)
.Take(10).ToDictionary(pair => pair.Key, pair => pair.Value);
,如果你把10首这样会更有效率,然后将它们转换成字典。在反之亦然的情况下,它会将它们全部转换为字典,然后从中取出10个。如果我们有一个大的列表可供选择,这将影响效率。
非常感谢 – Dedar 2012-04-22 03:30:10
提高接受率。接受帮助你解决问题并增加知识的答案 – 2012-04-21 06:04:05