DictionaryEntry循环的性能问题

时间:2012-07-17 07:09:15

标签: c#

目前我有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个小时,因为在比较之后每个单词将被添加到字典中是否不相同。我可以做些什么来改善这个循环?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将HybridDictionary转换为字典< string,string>所有的密钥都已经转换成你可以比较的格式(小写,不需要的字符被删除,等等)?那你的方法几乎变成了这个:

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

字典非常快;]