【问题标题】:Show top {n} words by occurrence and include count按出现次数显示前 {n} 个单词并包含计数
【发布时间】:2013-07-13 04:06:28
【问题描述】:

创建一个应用程序,其中子功能是在讨论板上显示最常用的唯一单词(已过滤掉诸如“the”、“and”等无用词)

他们要求列出最常用的 10 个单词,以及它们出现的百分比。我可以处理百分比,但我不确定最有效的方法是获取一个包含 10,000 个单词的字符串,并显示前 10 次出现,以及前 10 名中的每一个出现的次数。

【问题讨论】:

  • 开始阅读LINQ
  • 看看this,几乎就是你要找的东西。

标签: c# string sorting split unique


【解决方案1】:

使用LINQ'sGroupBy方法:

var listOfWords = GetMyListOfTenThousandWords();

listOfWords.GroupBy(
    low => low, 
    // Return an anonymous object with the word and it's count
    (key, result) => new { Word = key, Count = result.Count() } 
).OrderByDescending(w => w.Count)
.Take(10);

如果您想了解更多信息,我有一篇关于 GroupBy here 重载的快速文章。

【讨论】:

  • 在表达式末尾添加“OrderByDescending(p=>p.Count).Take(10)”
  • @Dave 这是否假设“listOfWords”是一个列表
  • @Dave 这似乎已将字符串分解为单独的字符。我将尝试先加载到 List 中,看看是否有帮助。
  • @Wesley 它假定它是一个IEnumerable<string>,其中包括一个List<string>。你是什​​么意思它把字符串分解成字符?这不应该那样做……
  • @DaveZych 如果输入是 10,000 个单词的单个字符串,它会向我返回每个字符出现的列表
猜你喜欢
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
相关资源
最近更新 更多