2009-09-01 15 views
48

C#には辞書のようなものがありますが、キーのみを持ち、値を持たないデータ構造はありますか?私は基本的に整数のリストがほしいと思うので、すばやく検索して、特定の値がリストにあるかどうかを調べることができます。私の現在の使用のために、リストはパフォーマンス上の問題を引き起こすことはありませんが、私のコードが行っていることの意図にうまく適合していないようです。C#のデータ構造と同じように、値なし

答えて

73

はい、これはHashSet<T>と呼ばれ、.NET Frameworkのバージョン3.5で利用できます。 .NETバージョン2.0を使用する場合は、辞書を使用して値を nullに設定できます。

+1

Hashset が.NET Framework 3.5に導入されました。以前のバージョンを使用している場合は、辞書を使用してすべての値をnullに設定すると思います。 – codeape

+0

.NET 2.0のもう1つのアプローチは、 'KeyedCollection'を使用し、キー抽出メソッドをバリューIDとして定義することです。 –

+0

ハッシュセットの使用に関する詳細情報:http://bit.ly/1FYcf –

0

または3.5を使用すると、辞書< int型、int型>のような何かをして、単に値を無視することができできない場合は値が

4

ユニークである必要はありSortedListのを使用します。私はこれを2.0でやったことがあり、私はキーと同じ値に設定する傾向があります。

2

.NET 3.5をターゲットにしていない場合は、Power Collections(オープンソース)にもSet実装が用意されています。

関連する問題