Англо-русский переводчик(метод перевода)

Реализовываю англо-русский и русско-английский переводчик на форме с использованием ООП. Возникли проблемы с переводом слов. Не могу перевести словосочетание, которое в другом языке состоит из одного слова. Например, bookcase (книжный шкаф) могу перевести на русский, а с русского на английский нет, так как в методе перевода разделяю слова пробелами.

class Translate
    {
        static string path = @"Dictionary.txt";
        public static int count = 1;
        public static string PathDef()
        {
            return path;
        }
        public static int direction = 1;
        public Dictionary<string, string> dict = new Dictionary<string, string>();
        public Translate(int direction) //конструктор, в котором заполняется словарь из файла
        {
            string[] dictionary = File.ReadAllLines(PathDef(), Encoding.Default);

            foreach (string line in dictionary)
            {
                    string[] words = line.Split(' ');
                    if (direction == 1)
                        dict.Add(words[0], words[1]);
                    if (direction == 2)
                        dict.Add(words[1], words[0]);
            }
        }
        public string Translat(string text) //метод перевода
        {
            string[] textArray = text.Split(' ');
            string result = "";
            foreach (string word in textArray)
            {
                if (dict.ContainsKey(word))
                {
                    result += dict[word] + " ";
                }
                else
                    result += "<???> "; //если нет в словаре
            }
            return result;
        }
}

Попыталась исправить метод, но выдаёт исключение "индекс находился вне границ массива"

string[] textArray = text.Split(' ');
string result = "";          
for (int i = 0; i < textArray.Length; i++)
{
      string word = textArray[i];
      if (textArray.Length > 1)
      {
          string word1 = textArray[i] + " " + textArray[i + 1]; #Индекс находился вне границ массива, если 2 слова
          if (dict.ContainsKey(word1))
                result += dict[word1] + " ";
          else
                result += "<???> ";
       }
       else if (dict.ContainsKey(word))
                result += dict[word] + " ";
       else
                result += "<???> ";
}

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