using System.Collections.Generic;
public static void Main(string[] args)
string text = "My bike and my book";
Dictionary<string, int> dWord = new Dictionary<string, int> (GetWordsFrequencyCount(text));
Dictionary<int, int> dLength = new Dictionary<int, int> (GetWordsLengthFrequencyCount(text));
Console.WriteLine("->" + text + "\n");
Console.WriteLine("WORD DICTIONARY");
foreach (KeyValuePair<string, int> Word in dWord) {
Console.Write("\"{0}\": {1}, ", Word.Key, Word.Value);
Console.WriteLine("\n..................................\n");
Console.WriteLine("LENGTH DICTIONARY");
foreach (KeyValuePair<int, int> len in dLength)
Console.Write("{0}: {1}, ", len.Key, len.Value);
static Dictionary<string, int> GetWordsFrequencyCount(string text)
Dictionary<string, int> dictionaryWord = new Dictionary<string, int>();
string[] parts = text.Split(' ');
string[] textParts = parts.Distinct().ToArray();
for (int i = 0; i < textParts.Length; i++) {
for (int m = 0; m < parts.Length; m++) {
if (string.Compare(textParts[i], parts[m]) == 0) {
dictionaryWord.Add(textParts[i],count);
static Dictionary<int, int> GetWordsLengthFrequencyCount(string text)
Dictionary<int, int> dictionarylength = new Dictionary<int, int>();
string[] parts = text.Split(' '); ;
int[] numParts = new int[parts.Length];
for (int i = 0; i < parts.Length; i++) {
numParts[i] = parts[i].Length;
numParts = numParts.Distinct().ToArray();
for (int i = 0; i < numParts.Length; i++){
for (int m = 0; m < parts.Length; m++)
if (numParts[i] == parts[m].Length){
dictionarylength.Add(numParts[i], count);