通过索引访问字典键

时间:2013-07-23 22:26:12

标签: c++-cli

这可能是一个简单的问题,但我如何访问特定行中的字典键的值。 假设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

1 个答案:

答案 0 :(得分:2)

字典&lt;&gt; class有一个索引器,您可以通过将[]运算符直接应用于对象引用来使用它。它在MSDN Library文章中命名为Item。 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<>)构造函数并传递你自己的比较器才能有幸存活下来。如有必要,可以提出另一个问题。