HashtableとDictionaryとHashSetの違い

                |保存内容                                       |既に存在するキーを追加             |存在しないキーのデータを取得
----------------|-----------------------------------------------|-----------------------------------|------------------------------------------
HashTable       |キーをstringで、データをobject型を保存         |ArgumentException例外が発生        |nullが取得される
Dictionay       |キー、データを指定した型で保存                 |ArgumentException例外が発生        |KeyNotFoundException例外が発生
HashSet         |キーのみを指定した型で保存※1                  |falseが戻る                        |- (そもそもキーに対応するデータを持たない)

※1:つまりHashSetは、重複なしアイテムを保存

HashTableはDictionayの下位互換だと思っていたが、存在しないキーのデータを取得したとき例外が発生しないという動作の差があった。
あと自分はHashSet知らんかったのがバカすぎる。