有没有办法使用
IEnumerable
的 For Each
循环来遍历 SortedDictionary
中的多个定义呢?我想基本上将它用作简单的数据库结构。例如,假设我的字典用于旋转文章,看起来像下面这样。对于句子中的每个单词(我的字符串),我将使用同义词(我的定义)创建一个新版本的字符串。这是我目前为止的进展: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种排列组合的句子字符串。
无论如何,感谢您的帮助。
Dictionary<string, List<string>> myDictionary = new Dictionary<string, List<string>>;
。然后你可以向字典中添加一个列表,或者像这样向现有列表添加一个新的同义词myDictionary["beat"].Add("hit");
。 - Ian Dallas