List<Rectangle> rects = new List<Rectangle>();
Rectangle rect = new new Rectangle(40 , 40, 20, 20);
rects.Add(rect);//然后我想修改矩形的点
rects[0].X += 20;
//这句话出现错误
“错误 1 无法修改“System.Collections.Generic.List<System.Drawing.Rectangle>.this[int]”的返回值,因为它不是变量 G:\C#\White Snake\White Snake\Snake.cs 116 25 White Snake
”出现这种问题怎么解决啊?或者有没有其他的方法,(注意rects 是一个数量不定的集合)List<Rectangle>

解决方案 »

  1.   

    Rectangle是结构体,是指类型,不能直接修改,只能new一个
      

  2.   


     List<Rectangle> rects = new List<Rectangle>();
                Rectangle rect = new Rectangle(40, 40, 20, 20);
                rects.Add(rect);
                rects = rects.Select(x => new Rectangle { X = x.X + 20, Y = x.Y, Width = x.Width, Height = x.Height }).ToList();