这可能是一个简单的问题,但我如何访问特定行中的字典键的值。
假设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
答案 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<>)
构造函数并传递你自己的比较器才能有幸存活下来。如有必要,可以提出另一个问题。