Найти слово синоним c#

Всем привет. Есть такая задача

Дан текстовый файл содержащий на каждой строке два слова - синонимы. С использованием коллекции Dictionary написать программу, позволяющую искать синоним для введенного с клавиатуры слова.

Я так понимаю, что мне нужно читать построчно из файла, записать в массив, и из массива записывать в словарь. После этого я ввожу слово, оно сравнивается с ключом, и мне выдаётся синоним. При попытке разделить строчку с помощью метода Split и добавить 1 слово как ключ, второе, как значение, вылетает ошибка "не удаётся преобразовать string[] в string". Если после этого добавить .ToString() или сделать List<string[]>, то будет записано System.String[]. Как это сделать, либо я неправильно мыслю?

        Dictionary<string, string> dic = new Dictionary<string, string>();
        FileStream Stream1 = new FileStream("sinonims.txt", FileMode.Open, FileAccess.Read);
        StreamReader r = new StreamReader(Stream1);
        string s;
        List<string> words = new List<string>();
        while ((s = r.ReadLine()) != null)
        {
            words.Add(s.Split(' ').Tostring());
        }
        r.Close();
        Stream1.Close();
        Console.WriteLine(words[0]);
        /*for (int i = 0; i < words.Count; i+=2)
            dic.Add(words[i], words[i+1]);/*

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

Автор решения: Blackmeser
string[] s = new string[] { "белый светлый", "чёрный тёмный" };
var a_ = s.ToList()
   .Select(s => new KeyValuePair<string, string>(s.Split(' ')[0], s.Split(' ')[1]))
   .SelectMany(s 
      => new List<KeyValuePair<string, string>>() 
      { 
         new KeyValuePair<string, string>(s.Key, s.Value), 
         new KeyValuePair<string, string>(s.Value, s.Key) 
      })
   .ToDictionary(d => d.Key, d => d.Value);

Примеры запроса-ответа:
a_["светлый"] //ответ: белый
a_["чёрный"] //ответ: тёмный

→ Ссылка