【问题标题】:c# Dictionary<char,int> picking the key with the largest valuec# Dictionary<char,int> 选择值最大的键
【发布时间】:2013-06-07 07:27:45
【问题描述】:

我有一个Dictionary&lt;char, int&gt; charstat 来计算一个字符的出现次数。我想从这本词典中获取 5 个最常见的字符数。该怎么做呢。

一些示例数据:

 <'T', 1>
 <'A', 2>
 <'C', 5>
 <'Q', 10>
 <'B', 3>
 <'Z', 7>

从这里我想按最大的顺序排列:

Q
Z
C
B
A

【问题讨论】:

标签: c# sorting dictionary


【解决方案1】:

我想从这本词典中获取 5 个最常见的字符数。

var item = charstat.OrderByDescending(r => r.Value)
                          .Select(r => r.Key)
                          .Take(5);

【讨论】:

  • @Rawling 在编辑有问题的代码之前无效,这也使该解决方案无效。这可能是一个原因。无论如何,我要 +1。
  • @PLB,我没有Select子句,所以原来是选择字典项。现在对其进行编辑以选择密钥。
  • 当然,如果有平局,即某些值相等,则不确定它们的顺序。
【解决方案2】:
  Dictionary<char, int> dir = new Dictionary<char, int>();
  // ...
  var query = (from p in dir
              orderby p.Value descending
              select p).Take(5);
  foreach (var item in query) {
    Console.Out.WriteLine("Char: {0}, Count: {1}", item.Key, item.Value);
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 2017-03-23
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多