Вероятность появления символа в тексте С#

Я новичок, пытался сделать програмку, суть которой посчитать количество символов в тексте, вроде работает. Теперь нужно сделать так чтобы еще показывалась вероятность появления символов.

К примеру есть текст "ЗАВТРА БУДЕТ ДОЖДЬ", вероятность появления буквы "Д" = 3/18, так как символов всего 18, включая пробелы, а буква повторяется трижды. Вот я что-то затрудняюсь, как мне это сюда впихнуть. Возможно кто знает, как это сделать лучше.

private void button1_Click(object sender, EventArgs e)
{
            listBox1.Items.Clear();
            double chars = richTextBox1.Text.Length;
            string TEXT = richTextBox1.Text;//текст
            string text = TEXT.ToLower();//в маленкие символы
            
            string AlreadyDone = "";
            string[,] Result = new string[text.Length, 2];
            
            
            int i = 0, l = 0;
            foreach (char ch in text)
            {
                i = 0;
                foreach (char c in text)
                {
                    if (ch == c) i++;
                }
                
                if (AlreadyDone.Contains(ch) != true)
                {
                    Result[l, 0] = ch.ToString();//символ
                    Result[l, 1] = i.ToString(); //кол-во символов
                   
                    AlreadyDone += ch; 
                    l++;
                }
            }
            for (int s = 0; s < AlreadyDone.Length; s++)
            {
                listBox1.Items.Add(Result[s, 0] + "  повторяется " + Result[s, 1] + " раз ");
            }
}

Ответы (1 шт):

Автор решения: Игорь

Посмотрите аналогичную задачу. Только ней собирается список, а вам нужно суммировать C# Оптимизация кода перебора слов в тексте

→ Ссылка