IEnumerable
For Each
-Loop を使用して複数の定義を解析する方法はあり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...
}
ご覧のとおり、私は解決策に向かっていますが、分割された単語のそれぞれを取得して、それらを辞書の同義語のそれぞれに置き換える方法がわかりません。試行ごとに 1 つの項目のみが置き換えられるため、最終的に文の文字列の 9 つの順列が存在することになります。
とにかく、助けていただければ幸いです。