2014-10-17 61 views
0

我认为在这里显示我的代码更容易理解。如何更改字典中的值<int, float>()?

Dictionary<int, float> list = new Dictionary<int, float>(); 
list.add(0, 0f); 

float fValue = 0f; 
list.TryGetValue(0, out fValue); 
fValue = 10f; 

此代码不正确,因为float数据类型不是类。这是一个结构。

我想改变“float”的值。

任何想法?

+0

那代码甚至不会*编译*开始,因为没有'add'方法。如果字典是一个列表,当它不是时,它也会产生误导。 – 2014-10-17 05:53:50

+0

* list.add(0,0f) - list.Add(0,0f);而名单“名单”只是一个名字来解释我面临的问题。 :) – Phiru 2014-10-17 06:00:56

+0

是的,但我的观点是,a)如果你要提供演示代码,你应该确保它首先工作; b)如果你想*解释*某事,那么使用一个误导性的变量名将违背你的目标。值得花费精力用适当的示例代码来问好问题,这样可以让问题尽可能清晰。 – 2014-10-17 06:03:26

回答

3

你可以改变它的使用它的索引值:

list[0] = 10f; 

其中0Key10f是新Value

+0

谢谢。它的作品〜! – Phiru 2014-10-17 05:59:09

2

一般情况下,你可以做这样的事情:

if (list.TryGetValue(0, out fValue)) 
    list[0] = 10f; // <- key 0 exits 
else 
    list.Add(0, 10f); // <- no such key found 

如果您不希望fValue对应于0键,则可以缩短代码

if (list.ContainsKey(0)) 
    list[0] = 10f; // <- when key 0 exits 
else 
    list.Add(0, 10f); // <- no such key found 
相关问题