Ошибка: Индекс находился вне границ массива - C# (206235)

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

Программа считывает файл с текстом и должна выводить слова, начинающиеся с заглавной буквы. При рассмотрении строки, где все буквы заглавные выдает ошибку о том, что индекс находится вне границ массива. Подскажите где ошибка.
                StreamReader file = new StreamReader(@"c:\lab31.txt");
                while ((line = file.ReadLine()) != null)
                {
                    string slovo = "";
                    string str = line.ToLower();
                    for (int i = 0; i < line.Length; i++)
                    {
                        if (line[i] != str[i])
                        {
                            do
                            {
                                slovo += line[i];
                                i++;
                            }
                            while ((i == line.Length - 1) | (line[i] != ' '));
                            Console.WriteLine(slovo);
                            slovo = "";
                        }
                    }
                }

Код к задаче: «Ошибка: Индекс находился вне границ массива - C# (206235)»

textual
          string line;
          string slovo="";
          StreamReader file = new StreamReader(@"c:\lab31.txt");
          while ((line = file.ReadLine()) != null)
            {
                for (int i = 0; i < line.Length; ++i)
                {
                    if (line[i] == ' ')
                    {
                        if (slovo == slovo.ToLower()) Console.WriteLine(slovo);
                        slovo = "";
                    }
                    slovo += line[i];                   
                }
            }

7   голосов, оценка 3.714 из 5


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