Есть ли способ использовать IEnumerable
For Each
-Loop для синтаксического анализа нескольких определений в SortedDictionary
? Я бы хотел использовать его в качестве простой структуры базы данных, я думаю. Например, скажем, мой словарь используется для вращения статьи и выглядит следующим образом. Для каждого слова в предложении (моя строка) я бы создал новую версию этой строки, используя синоним (мои определения). Это даже лучший вариант? Это то, что я до сих пор:Перестановочные множественные значения словаря с использованием C#
string testSentence = "Take it or beat it.";
List<string> allSynonyms = SynonymUtility.AlternativesOf(testSentence).ToList();
variations.AddRange(allSynonyms);
public class SynonymUtility
{
private static readonly SortedDictionary<char, string> synonymList = new SortedDictionary<char, string>
{
{'but', "however"},
{'take', "abduct, abstract, accroach"},
{'beat', "hit, lash, punch, shake"},
{'end', " butt, confine, cusp"};
}
public static IEnumerable<string> AlternativesOf(string arg)
{
arg = arg.ToLower();
string[] words = arg.Split(" "));
//END HERE I AM STUCK...
}
Так как вы можете видеть, я на моем пути к решению, но я не могу понять, как взять каждого из расщепленных слов и заменить их каждый синонимов в словаре. Каждая попытка заменит только один элемент ... так что в конце будет 9 перестановок строки предложения.
В любом случае, любая помощь будет оценена по достоинству.
Почему не просто иметь список как словарь значение? –
Как вы это сделаете? Разве не требуется отдельный список для каждого слова? – Jeagr
Нет, вы можете сделать 'Словарь <строка, список> myDictionary = новый словарь <строка, список >;' Затем вы можете добавить список в словарь или добавить новый синоним существующего списка, подобный этому 'myDictionary [" beat "] .Add (" hit ");' –