Англо-русский переводчик(метод перевода)
Реализовываю англо-русский и русско-английский переводчик на форме с использованием ООП. Возникли проблемы с переводом слов. Не могу перевести словосочетание, которое в другом языке состоит из одного слова. Например, 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 += "<???> ";
}