Вам необходимо переместить Console.WriteLine за пределы цикла.Кроме того, необходимо изменить условие цикла, чтобы исключить ArguementOutOfRangeException.
for (int i = 0; i < wordArray.Length; i++)
В вашем коде есть еще одна ошибка.Вы конвертируете userWord в нижний регистр, но не сохраняете результат.
userWord.ToLower();
Необходимо заменить вышеуказанную строку на
userWord = userWord.ToLower();
Полный код
Console.WriteLine("Enter a word.");
string userWord = Console.ReadLine();
Console.WriteLine();
Console.WriteLine("You wrote {0}", userWord);
Console.WriteLine();
userWord = userWord.ToLower();
char[] wordArray = userWord.ToArray();
for (int i = 0; i < wordArray.Length; i++)
{
if (wordArray[i] == 'a' || wordArray[i] == 'e' || wordArray[i] == 'i' || wordArray[i] == 'o' || wordArray[i] == 'u')
{
wordArray[i] = '$';
}
}
var rebuildWord = new string(wordArray);
Console.WriteLine("Your word is now: {0}", rebuildWord);
Console.WriteLine("The total number of letters in your word is {0}", userWord.Length);
Только для вашей информации вы можете достичьто же самое, используя Regex.
Console.WriteLine("Enter a word.");
string userWord = Console.ReadLine();
Console.WriteLine();
Console.WriteLine("You wrote {0}", userWord);
Console.WriteLine();
var rebuildWord = Regex.Replace(userWord,@"[aeiouAEIOU]","$");
Console.WriteLine("Your word is now: {0}", rebuildWord);
Console.WriteLine("The total number of letters in your word is {0}", userWord.Length);