質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

3481閲覧

Dictionaryのキーに配列を用いたい

inori

総合スコア14

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2017/07/25 14:45

編集2017/07/25 14:53

C#のDictionaryのキーに配列を用いたい

辞書のキーにint[]を、値にstringを用いたいと考えていますが、存在しないと判定されています。
以下にコードを記述します、お力添え頂けると幸いです。

Dictionary<int[], string> DICTIONARY = new Dictionary<int[], string>();
DICTIONARY.Add(new int[] {0,1 }, "test");

int[] KEY = new int[] {0,1};
bool HasKey = DICTIONARY .ContainsKey(KEY);
if (HasKey)
{
return DICTIONARY [KEY];
}

よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんにちは。

int配列そのままだと無理だと思います。
参照型を特定の値で比較しDictionaryのKeyなどとして使う場合は
GetHashCodeとEqualをオーバーライドしたラッパーで包括する必要があります。

以下などがそのまま参考になると思います。
https://stackoverflow.com/questions/7138382/array-comprasion-as-dictionary-keys-in-c-sharp

投稿2017/07/25 15:14

Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

inori

2017/07/25 15:30

URLを参考にしたいと思います!ありがとうございました。
guest

0

できないのは、オブジェクトをNewしているからです。
同じ値のようで、違うものなので、違うと判定されています。
オブジェクトを使いまわせば、元のソースでもうまくいくと思います。

多分やりたいのはこういうことをやりたいのだと予想。C#7.0のタプル構文使用。
http://ufcpp.net/study/csharp/cheatsheet/ap_ver7/

Dictionary<(int,int),string> dictionary= new Dictionary<(int,int),string>(); dictionary.Add((0,1),"test"); bool HasKey = dictionary.ContainsKey((0,1)); if(HasKey) { return dictionary[(0,1)]; }

投稿2017/07/25 15:09

編集2017/07/25 15:10
kiichi54321

総合スコア1984

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問