zoukankan      html  css  js  c++  java
  • 计算单词出现的次数--linq

             1、直接给出代码:声明数据,也可以是txt等文件,通过File类的静态方法读取其中的文本,再转换成List<string>数组。

             private static List<string> words = new List<string> 
                { "there", "is", "a", 
                    "great", "house", "and", 
                    "an", "amazing", "lake", 
                    "there", "is", "a", 
                    "computer", "running", "a", 
                    "new", "query", "there", 
                    "is", "a", "great", 
                    "server", "ready", "to", 
                    "process", 
                    "map", "and", "reduce" };

       2、把数据转换成Lookup<T,K>,Lookup和Dictionary字典有点像,其中的一个重要不同点在于,Lookup中的键值对可以重复出现。比如,可以出现键key="key01" 值value=“01”的键值对两次,或者更多次。而Dictionary中的键只能出现一次,就像小时候用的字典一样,要查的汉字总是唯一的。下面这段代码生成的键值对是有一个单词和1组成。

     ILookup<string, int> map = words.AsParallel().ToLookup(p => p, k => 1);

      3、提取结果,Word存储单词,Count存储单词出现个数。

            var reduce = from IGrouping<string, int> wordMap in map
                             select new
                             {
                                 Word = wordMap.Key,
                                 Count = wordMap.Count()
                             };

        reduce是统计各个单词个数,也可以加入过滤条件,选择符合需要的数据。例如,个数大于1且单词长度大于2的单词个数,只需加入Where条件即可(红色部分),代码如下。

               var reduce = from IGrouping<string, int> wordMap in map
                             where (wordMap.Count()>1&&wordMap.Key.Length>2)
                             select new
                             {
                                 Word = wordMap.Key,
                                 Count = wordMap.Count()
                             };
                foreach (var item in reduce)
                {
                    Console.WriteLine(item.Word + "	" + item.Count);
                }

            4、输出结果。可以看一下最后输出的结果。

  • 相关阅读:
    TestFlight使用方法
    jmeter 单接口测试方案(接口无业务关联)
    jenkins+ANT+jmeter 接口测试环境搭建
    Pytorch实战(3)----分类
    莫烦大大keras的Mnist手写识别(5)----自编码
    莫烦大大keras学习Mnist识别(4)-----RNN
    莫烦大大keras学习Mnist识别(3)-----CNN
    算法68------数组和矩阵问题
    Keras学习基础(2)
    TensorFlow实战笔记(17)---TFlearn
  • 原文地址:https://www.cnblogs.com/zhangyuanbo12358/p/4179759.html
Copyright © 2011-2022 走看看