无法修改返回值字典<string,point =“”>,因为它不是变量

时间:2019-02-24 12:40:08

标签: c# dictionary

我的标题中出现此错误,这是问题代码:

Dictionary<string, Point> dicPoint = new Dictionary<string, Point>();
dicPoint.Add("point1", new Point());
dicPoint["point1"].X++;

在增加X时,会产生错误。该问题的解决方法是什么?

1 个答案:

答案 0 :(得分:5)

我假设您使用的Point类型是一个结构。因此,获取dicPoint["point1"]将创建该值的副本。更改该内容不会更改字典中的内容。相反,您需要获取值,对其进行修改,然后替换字典中的条目:

var point = dicPoint["point1"];
point.X++;
dicPoint["point1"] = point;