Advertisement
elena1234

WordCount- work with stream

Jan 14th, 2021 (edited)
400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.50 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5.  
  6. namespace WordCount
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             var dictWordAppear = new Dictionary<string, int>();
  13.             using (var readerWords = new StreamReader("words.txt"))
  14.             {
  15.                 using (var readerText = new StreamReader("text.txt"))
  16.                 {
  17.                     using (var writerInActualResult = new StreamWriter("actualReasult.txt"))
  18.                     {
  19.                         using (var writerInExpectedResult = new StreamWriter("expectedResult.txt"))
  20.                         {
  21.                             string[] wordsArray = readerWords.ReadToEnd().ToLower().Split();
  22.                             while (!readerText.EndOfStream)
  23.                             {
  24.                                 var lineArray = readerText.ReadLine().ToLower().Split(new char[] { ',', '.', '!', '?', '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);
  25.                                 foreach (var wordInWordsArray in wordsArray)
  26.                                 {
  27.                                     foreach (var wordInLineArray in lineArray)
  28.                                     {
  29.                                         if (string.Equals(wordInWordsArray, wordInLineArray))
  30.                                         {
  31.                                             if (!dictWordAppear.ContainsKey(wordInWordsArray))
  32.                                             {
  33.                                                 dictWordAppear[wordInWordsArray] = 0;
  34.                                             }
  35.  
  36.                                             dictWordAppear[wordInWordsArray]++;
  37.                                         }
  38.                                     }
  39.                                 }
  40.                             }
  41.  
  42.                             foreach (var (word, appear) in dictWordAppear)
  43.                             {
  44.                                 writerInActualResult.WriteLine($"{word}-{appear}");
  45.                             }
  46.  
  47.                             var sortedDict = dictWordAppear.OrderByDescending(x => x.Value);
  48.                             foreach (var (word, appear) in sortedDict)
  49.                             {
  50.                                 writerInExpectedResult.WriteLine($"{word}-{appear}");
  51.                             }
  52.                         }
  53.                     }
  54.                 }
  55.             }
  56.         }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement