using System.Collections.Generic;
public static void Main(string[] args)
string text = "My bike and my book";
string text2 = "I know a secret down at Uncle Tom's Cabin oh yea " +
"I know a secret that I just can't tell " +
"I know a secret down at Uncle Tom's Cabin " +
"I know a secret that I just can't tell " +
"I know a secret down at Uncle Tom's Cabin " +
"I know who put the bodies in the wishing well";
PrintCount(GetWordsFrequencyCount(text));
Console.WriteLine("--------");
PrintLength(GetWordsLengthFrequencyCount(text));
private static Dictionary<string, int> GetWordsFrequencyCount(string text)
var frequencyDictionary = new Dictionary<string, int>();
var textSplit = text.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
FillDictionary(frequencyDictionary, textSplit);
return frequencyDictionary;
private static void FillDictionary(Dictionary<string, int> frequencyDictionary,
foreach (var word in textSplit)
var wordToLower = word.ToLower();
if (frequencyDictionary.ContainsKey(wordToLower))
frequencyDictionary[wordToLower]++;
frequencyDictionary.Add(wordToLower, 1);
private static void PrintCount(Dictionary<string, int> Dict)
string printFrequencyCount = JsonConvert.SerializeObject(Dict, Formatting.Indented);
Console.WriteLine("Words:\n" + printFrequencyCount);
private static Dictionary<int, int> GetWordsLengthFrequencyCount(string text)
var lengthDictionary = new Dictionary<int, int>();
var textSplit = text.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
FillLengthDictionary(lengthDictionary, textSplit);
private static void FillLengthDictionary(Dictionary<int, int> lengthDictionary,
foreach (var word in textSplit)
if (lengthDictionary.ContainsKey(word.Length))
lengthDictionary[word.Length]++;
lengthDictionary.Add(word.Length, 1);
private static void PrintLength(Dictionary<int, int> Dict)
Console.Write("Lengths:\n{");
foreach (var pair in Dict)
if (!pair.Key.Equals(Dict.Last().Key))
Console.Write("{0}: {1}, ",pair.Key,pair.Value);
Console.Write("{0}: {1}",pair.Key,pair.Value + "}");