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 に答える