C#中 字典包含的结构体的字段值的批改

C#中 字典包含的结构体的字段值的修改

这是我的字典
  public Dictionary<int, lineTime> lineList;

这是结构体
   public struct lineTime
        {
            public int arriTime;
            public int travelTime;  //路段行程时间
        }

程序中已经赋过值,需要修改arriTime
 arcnode.lineList[LineID].arriTime = arrivalTime;

直接赋值报错,求大牛解释一下。
字典的value可以修改,结构体的字段也可以修改,为什么这个不能直接改?
------解决思路----------------------
因为结构体是值类型,如果是类,可以这样改
------解决思路----------------------
字典的value不是‘结构体的字段’,它实际上是一个方法的返回值。
结构是值类型,返回的是值的一个拷贝(副本),在副本进行修改时没有意义的。

你可以整体赋值:
var s = arcnode.lineList[LineID];
s.arriTime = arrivalTime;
arcnode.lineList[LineID] = s;
------解决思路----------------------
我也发现是这样的
如果是C#已有的类型,就可直接修改
如果是自己定义的结构,就不能直接修改
应该是少了某个接口,但 vs 并没有提示

我都是取出来,修改后再放回去这样做的