Заменить заглавную букву обычной, если она не в начале слова С#

Создать строку с несколькими предложениями. В предложениях должны быть фрагменты текста, которые нужно заменить. При запуске программы выбирается шрифт из диалога fontDialog. Задать весь текст в текстовой компоненте с выбранным шрифтом. Далее программа должна найти и отметить другим заданным шрифтом участки текста, в котором требуется внести изменения.

Помогите прописать алгоритм в методе SelectWords

Font userFont, selectionFont;
    public Form1()
    {
        InitializeComponent();
        rtb.Text = "ПОдобные идеи пЕриодически возникают в Дизайне бытовой техники.";
        FontDialog fontDialog = new FontDialog();
        if (fontDialog.ShowDialog(this) == DialogResult.OK)
        {
            userFont = fontDialog.Font;
            rtb.Font = userFont;

            if (fontDialog.ShowDialog() == DialogResult.OK)
            {
                selectionFont = fontDialog.Font;
                SelectWords();
            }
        }
    }
       void SelectWords()
    {
        string[] words = rtb.Text.Split(' ');
        for (int i = 0; i < words.Length; i++)
        {
            ///??
        }

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

Автор решения: Andrew_STOP_RU_AGRESSION_IN_UA

код не проверялся и может иметь мелкие синтаксические ошибки:

var result = "ПОдобные идеи пЕриодически возникают в Дизайне бытовой техники."
    .Split(' ')
    .Select(a => $"{a.Substring(0, 1)}{a.Substring(1).ToLower()}")
    .Join(" ")

вариант без LINQ:

var words = someString.Split(' ');
var wordsFixed = List<String>();

foreach word in words {
    wordsFixed.Append( $"{word.Substring(0, 1)}{word.Substring(1).ToLower()}" );
}

var result = String.Join(wordsFixed, " ");

написал так же в рамках псевдокода т.к. точного синтаксиса я не помню)

→ Ссылка