0

这可能是一个简单的问题,但我如何访问特定行中字典键的值。假设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,您可以通过将[]运算符直接应用于对象引用来使用它。它Item在 MSDN Library 文章中被命名。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 回答