无法修改返回值Dictionary <string,Point>,因为它不是变量

sYs*_*TeM 3 c# dictionary

我在标题中收到此错误,这是问题代码:

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

在递增X时,它给出了错误.这个问题的解决方案是什么?

Jon*_*eet 5

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

var point = dicPoint["point1"];
point.X++;
dicPoint["point1"] = point;
Run Code Online (Sandbox Code Playgroud)