web-dev-qa-db-ja.com

C#にDictionary <>のようなクラスはありますが、キーだけの場合、値はありませんか?

これを別の言い方で表現すると、「C#にはList<>のようなクラスがありますが、特定の値が存在するかどうかを確認するために最適化されていますか?」小さな値のセットではList<>.Containsで十分だと思いますが、数千または数百万の値のセットがあり、特定の値が含まれているかどうかを確認したい場合はどうでしょうか。

私は過去にDictionary<object, int>を作成し、すべてのキーの値を0に設定することでこの種のことを実装しましたが、これは本当に不格好に感じます。そして今、Stack Overflowがあります。ここでは、私の愚かな質問を数千人(数十人)の教育に変えることができます。だからここにあります!

Set以外に、そのようなクラスが何と呼ばれるかさえわからないので、明らかにトピックの検索は...挑戦的でした:)

57
Chuck Wilbur

HashSet<T> クラスを使用してみてください。

編集:ブログを読んでいるときにこのクラスに出くわすまで、私はあなたがしたことを正確に行うのに長い時間を費やしました。

68
Jake