私は、データのコレクションを反復処理し、「主キー」が重複しているエントリを削除する必要があるプロジェクトに取り組んできました。私は使用してみました
List<int>
と
Dictionary<int, bool>
辞書を使用すると、各エントリでブール値をタグ付けする必要はありませんが、パフォーマンスがわずかに向上することがわかりました。私の期待は、これはリストがインデックス付きアクセスを許可し、ディクショナリが許可しないためです。私が疑問に思っていたのは、この問題に対するより良い解決策があるかどうかです。エントリに再度アクセスする必要はありません。見た「主キー」を追跡するだけで、新しい主キーを持つエントリに対してのみ追加作業を実行するようにできます。私はC#と.NET2.0を使用しています。また、入力データを修正してソースから重複を削除することはできません(残念ながら!)。そして、スケーリングの感覚をつかむことができます。全体として、アプリケーションで約1,000,000回重複をチェックしていますが、一意である必要があるのは約64,000以下のサブセットです。