如何设置Dictionary的值?
public class Holding
{
public Dictionary<int, double> QuantityPricePair { get; set; }
public Holding()
{
QuantityPricePair = new Dictionary<int, double>();
}
}
Linq查询找对象
KeyValuePair<int, double> query = holding.QuantityPricePair.Where(h => h.Value == 7).SingleOrDefault();
if (query.Key != 0)
{
query.Value = 3;
}
我无法编译代码,声称KeyValuePair没有setter
答案 0 :(得分:1)
KeyValuePair<K,V>
是一个不可变对象,它引用字典中的一个键/值对。您无法更改KeyvaluePair
对象的任何部分。但是如果你想更改字典中该键的值,这很容易做到 - 你已经在那里得到了字典:
if (query != null && query.Key != 0)
{
holding.QuantityPricePair[query.Value] = 3;
}
SingleOrDefault()
可以返回null
,因此请不要忽略这一点。
如果目标不是在那里更改字典自身的值,那么如果您只是想在使用它做其他事情之前更改KeyValuePair
,则可以轻松创建新的{ {1}}相反,没有人会知道差异:
KeyValuePair
再次注意,第二个版本不可能改变存储在字典中的值。