Сколько раз каждая буква встречается в тексте - C#

Формулировка задачи:

Как сделать так, чтобы мне выводило сколько раз каждая буква встречалась в тексте? И еще, как можно изменить код, чтобы строчная и заглавная считались за одну букву?
        public void Count(string text)
        {
            int count = 0;
            int num = text.Length;
            double freq;
            string stralfavit = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"; //33
            string zagalfavit = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя".ToUpper();
            for (int i = 0; i < text.Length; i++)
            {
                for (int j = 0; j < stralfavit.Length; j++)
                {
                    if (text[i] == stralfavit[j]) count++;
 
                }
                for (int z = 0; z < zagalfavit.Length; z++)
                {
                    if (text[i] == zagalfavit[z]) count++;
                }
            }
            freq = (double)count / num;
            MessageBox.Show(count.ToString());
        }

Код к задаче: «Сколько раз каждая буква встречается в тексте - C#»

textual
string str = "jhgkjhgKJHkjhgJkjhgfJHGF";
char lowCh;
Dictionary<char, int> dict = new Dictionary<char, int>();
foreach (var ch in str)
{
    lowCh = char.ToLower(ch);
    if (dict.ContainsKey(lowCh))
        dict[lowCh]++;
    else
        dict.Add(lowCh, 1);
}
foreach (var item in dict)
    Console.WriteLine(item.Key + "\t" + item.Value);

6   голосов, оценка 4.333 из 5


СОХРАНИТЬ ССЫЛКУ