0

目前我有 231556 个单词集合,并在下面循环检查每个单词是否重复。

我正在使用这个功能: -

public bool IsContainStringCIAI(string wordIn, HybridDictionary hd, out string wordOut)
    {
        int iValue = 1;
        foreach (DictionaryEntry de2 in hd)
        {
            iValue = CultureInfo.CurrentCulture.CompareInfo.Compare(wordIn.ToLower(), de2.Key.ToString().ToLower(), CompareOptions.IgnoreNonSpace);
            if (iValue == 0)
            {
                wordOut = de2.Key.ToString(); //Assign the existing word
                return true;
            }
        }
        wordOut = wordIn;
        return false;
    }

完成循环大约需要 20 个小时,因为每个单词如果不一样都会在比较后添加到字典中。我能做些什么来改善这个循环?之前谢谢。

4

1 回答 1

1

您可以将您的 HybridDictionary 转换为 Dictionary<string, string> ,其中所有键都已转换为您可以比较的格式(小写,去除不需要的字符等)?然后你的方法几乎变成了这样:

return hd.TryGetValue(wordIn.ToLower(), out wordOut); 

而且字典非常快;]

于 2012-07-17T07:23:11.977 回答