using System.Collections.Generic;
public static void Main()
string input = "hello world";
Console.WriteLine("Provided text : " + input);
Dictionary<char, int> charCount = GetOccuranceOfEachChar(input);
foreach(var item in charCount)
Console.WriteLine(item.Key + " - " + item.Value);
Console.WriteLine("---------Second Way ---------------");
charCount = GetOccuranceOfEachCharByLINQ(input);
foreach(var item in charCount)
Console.WriteLine(item.Key + " - " + item.Value);
private static Dictionary<char, int> GetOccuranceOfEachChar(string input)
Dictionary<char, int> result = new Dictionary<char, int>();
char[] arrInput = input.ToCharArray();
int length = input.Length;
for(int i = 0 ; i < length; i++)
else if( i == length - 1 && arrInput[i] != ' ')
result.Add(arrInput[i],count);
for(int j=i+1; j< length; j++)
if(arrInput[i] == arrInput[j])
result.Add(arrInput[i],count);
private static Dictionary<char, int> GetOccuranceOfEachCharByLINQ(string input)
Dictionary<char, int> res = new Dictionary<char, int>();
char[] arrDistinctChar = input.Distinct().ToArray();
foreach(char item in arrDistinctChar)
occurance = input.Where(c => c.Equals(item)).Count();
res.Add(item, occurance);