目前我有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个小时,因为在比较之后每个单词将被添加到字典中是否不相同。我可以做些什么来改善这个循环?谢谢。
答案 0 :(得分:1)
您可以将HybridDictionary转换为字典< string,string>所有的密钥都已经转换成你可以比较的格式(小写,不需要的字符被删除,等等)?那你的方法几乎变成了这个:
return hd.TryGetValue(wordIn.ToLower(), out wordOut);
字典非常快;]