我有一串500个随机字母和一个10,000字典word list。
我想检查单词匹配的字母。
如果有5个或更多匹配,我希望它返回匹配单词列表。
但是,此foreach
和Contains.()
似乎无法正常工作或返回正确的匹配项。它还返回部分匹配和单个字母。
// 500 Random Letters
string letters = "bliduuwfhbgphwhsyzjnlfyizbjfeeepsbpgplpbhaegyepqcjhhotovnzdtlracxrwggbcmjiglasjvmscvxwazmutqiwppzcjhijjbguxfnduuphhsoffaqwtmhmensqmyicnciaoczumjzyaaowbtwjqlpxuuqknxqvmnueknqcbvkkmildyvosczlbnlgumohosemnfkmndtiubfkminlriytmbtrzhwqmovrivxxojbpirqahatmydqgulammsnfgcvgfncqkpxhgikulsjynjrjypxwvlkvwvigvjvuydbjfizmbfbtjprxkmiqpfuyebllzezbxozkiidpplvqkqlgdlvjbfeticedwomxgawuphocisaejeonqehoipzsjgbfdatbzykkurrwwtajeajeornrhyoqadljfjyizzfluetynlrpoqojxxqmmbuaktjqghqmusjfvxkkyoewgyckpbmismwyfebaucsfueuwgio"
// Dictionary Words List
string[] words = File.ReadAllText(@"C:\dictionarywords.txt").Split('\n');
// Word Matches List
List<string> matches = new List<string>();
// Check for Word matches in Letters
foreach (var x in words)
{
// Add to list if match
if (letters.Contains(x))
{
matches.Add(x);
}
}
// Return Matched Words if 5 or greater
if (matches.Count() >= 5)
{
textBox.Text = string.Join("\n", matches);
}
眼睛找到的单词匹配:
代码匹配返回:
答案 0 :(得分:2)
您的代码按预期工作。它正在寻找这些词,但它也在寻找其他词。我建议您删除不想在搜索中显示的字词。例如,很多人在亵渎过滤器中使用它。因此,如果一个句子包含一个诅咒词,它会省略该词,因为它在诅咒词的词典中找到了它。尝试使用一个更小的列表,其中包含您自己输入的单词并测试结果。尝试将这些词改为其他词?