0

おそらく簡単な質問ですが、特定の行の辞書キーの値にアクセスするにはどうすればよいですか。2 番目の キーはDictです。{ 1,13; 3,14; 5,17 }3

どうすればその値を取得できますか? 試してみDict->Key[2]ましたが、エラーが発生し、それへの参照が見つかりません

更新:これで必要なものが得られますが、もっと速い方法があるかもしれません。

 Dictionary<double, double>::KeyCollection^ keyColl = Dict->Keys;

 double first;
 double last;

  int counter=0;
  int dictionaryCount = Dict->Count;
for each( double s in keyColl )
{
if(counter==0){
    first=s;
}
if(dictionaryCount == counter+1){
    last=s;
}
//Dict[first] would be the first key
//Dict[last] would be the last key
4

1 に答える 1

2

Dictionary<> クラスにはindexer[]があり、演算子をオブジェクト参照に直接適用して使用します。ItemMSDN ライブラリの記事で名前が付けられています。Dictionary のインデクサーはキーを受け取り、キーの値を返します。サンプルコード:

auto dict = gcnew Dictionary<int, double>();
dict->Add(1, 13);
dict->Add(3, 14);
dict->Add(5, 17);
auto value = dict[3];

キーが存在するかどうかわからない場合は、代わりに TryGetValue() メソッドを使用できます。

辞書はDict<double,double>

doubleをキーとして使用するのは非常に面倒なことに注意してください。浮動小数点値が等しいかどうかを比較することは驚きに満ちていますが、どれも良いものではありません。Dictionary(IEqualityComparer<>)これを乗り切るには、コンストラクターを使用して独自の比較子を渡す必要があります。必要に応じて、それについて別の質問をしてください。

于 2013-07-24T01:02:55.943 に答える