FrameworkDictionaryのKeyに指定するオブジェクトを工夫することで複数のキーを指定できるようにしたいと思います。検索するとよく出てくるTupleクラスを使用した方法はコードが見づらい(というか書く値の意味が不明瞭化する)ためメリットが薄いです。従ってここでは別の方法で実現します。Dictionaryがキーを識別する方法その前に、Dictionaryのキーの識別方法、すなわちどのようにキーが同値かを判断するかはMSDNによると以下の通りです。本当に同じかどうか判定するこのように2段階の確認で同じ場合同じ場所に値を格納するようになります。従ってオブジェクトに同じ値が設定されていたら同じハッシュ値を返すEqualsは内容が同じであればtrueを返すという条件を持つ複数のフィールドからなるオブジェクトをキーに指定すれば複数の条件をキーに持たせることができたとえ言えます。コード例まず確認です。キーに用いるためのクラスを用意します。}}上記クラスで次のコードを実行します。}}結果はコメントの通りですが、通常インスタンスが異なるとGetHashCodeが上記のようにひとつづつ異なっていて、Equalsもfalseを返します。Dictionaryには5つの値が格納されます。そこで、MyKeyクラスを冒頭の条件に一致するよう、以下の通り変更します。}}この状態で、先ほどと同じコードを実行するとDictionaryの値の保持のされ方が変化します。}}同じ内容が設定される限り同じキーだとDictionaryに認識されるようになり、Dictionaryには一つのキーに(あと勝ち上書きになって)最後のオブジェクトだけが残っています。キーに複数の値を指定するのと実質同じことが実現できました。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。Core3.xとUnityでAES暗号化を利用するC#の標準機能でデータを圧縮・展開するC#で属性を利用して処理に制約の説明を追加するC#で文字列にSQLのIN句のようなメソッドを追加するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。