2

これが私がしていることです:

  1. 文字列を取る
  2. HashSetに文字列が含まれているかどうかを確認します
  3. そうでない場合は、文字列をHashSetに追加します(追加する場合は、別のことを行います)

これは、文字列の非常に大きな配列で可能な限り最速の方法で機能する必要があります

HashSetを使用して、文字列がすでに発生しているかどうかを確認する最速の方法ですか、それとも.net 4.5に適したものがありますか?

4

2 に答える 2

7

HashSet.Addを参照してください

要素がHashSetオブジェクトに追加された場合はtrueを返します。要素がすでに存在する場合はfalse 。

HashSet<string> hs = new HashSet<string>();
bool b1 = hs.Add("xxx"); //returns true
bool b2 = hs.Add("xxx"); //returns false
于 2012-12-03T19:48:33.670 に答える
2

新しい同時データ型を使用するとプログラムが高速化される可能性がありますが、プロファイラーを使用してシナリオを比較し、最適なオプションを選択してください。

http://blogs.msdn.com/b/pfxteam/archive/2010/04/26/9997562.aspx

http://geekswithblogs.net/BlackRabbitCoder/archive/2011/06/16/c.net-fundamentals-choosing-the-right-collection-class.aspx

C#.NETジェネリックコレクションのパフォーマンスと最適化を支援する

于 2012-12-03T19:55:40.047 に答える