有效计算URL中每个单词出现次数的方法

时间:2016-03-25 00:07:28

标签: c#

我正在做类似的事情,用户将输入任何网址并获取文本。

然后将解析文本并计算单词。

我目前正在阅读微软的这篇文章: https://msdn.microsoft.com/en-us/library/bb546166.aspx

我现在可以得到文本了,我现在正在考虑一种计算每个单词的有效方法。

文章示例需要搜索数据,但我需要搜索每个单词而不是特定单词。

以下是我的想法:

  1. 获取文本并将其转换为字符串
  2. 拆分它们(分隔符)并存储在数组
  3. 循环遍历数组,然后检查它的每次出现。
  4. 这会有效吗?

1 个答案:

答案 0 :(得分:1)

使用Linq

如果你有少量数据可以只对空格进行拆分,并创建一个组

 var theString = MethodToGetStringFromUrl(urlString);

 var wordCount = theString
                    .Split(' ')
                    .GroupBy(a=>a)
                    .Select(a=>new { word = a.Key , Count = a.Count() });

请参阅fiddle了解更多工作副本

一些实验和结果

在.net中弄乱了一点,使用正则表达式实际上降低了性能并增加了使用的内存量,请参阅here以查看我在说什么

其他替代

由于您是从Url获​​取请求,因此在将其转换为字符串然后执行搜索之前搜索流内部可能会更高效。

除非您需要,否则不要进行优化 为什么你需要找到一种高效的方法呢?您是否遇到任何问题或只是认为自己会这样做,一个好的经验法则通常是不要过早地优化,有关更多信息,请查看有关该主题的这个好问题: When is optimisation premature?