Найти слово синоним 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 шт):
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_["чёрный"] //ответ: тёмный