C# 更改类对象列表中项的值的正确方法
给这样一个班级:C# 更改类对象列表中项的值的正确方法,c#,list,class,C#,List,Class,给这样一个班级: public class Dinosaur { public string Specie { get; set; } public int Age { get; set; } public int Weight { get; set; } public Point Location { get; set; } // Constructor public Dinosaur() { } 还有这样一个列表:
public class Dinosaur
{
public string Specie { get; set; }
public int Age { get; set; }
public int Weight { get; set; }
public Point Location { get; set; }
// Constructor
public Dinosaur()
{
}
还有这样一个列表:
public static List<Dinosaur> Dinosaurs = new List<Dinosaur>();
一如既往,提前感谢!Stackoverflow一直是这个项目的救星。恐龙。Last()
返回最后一项,而不是它的索引,因此:
Dinosaurs.Last().Location.X = pixelMousePositionX;
如果要按索引执行,请执行以下操作:
Dinosaurs[Dinosaurs.Count - 1].Location.X = pixelMousePositionX;
恐龙.Last()
返回最后一项,而不是其索引,因此:
Dinosaurs.Last().Location.X = pixelMousePositionX;
如果要按索引执行,请执行以下操作:
Dinosaurs[Dinosaurs.Count - 1].Location.X = pixelMousePositionX;
dingors.Last()
已返回最后一项,因此根本不需要索引器
Dinosaurs.Last().Location.X = pixelMousePositionX;
现在它抛出了这个错误:无法修改
“恐龙岛。恐龙。位置”,因为它不是一个变量
这是因为点
是结构而不是引用类型。因此,您必须创建一个新点
Point oldLocation = Dinosaurs.Last().Location;
Dinosaurs.Last().Location = new Point { X = pixelMousePositionX, Y = oldLocation.Y };
dingors.Last()
已返回最后一项,因此根本不需要索引器
Dinosaurs.Last().Location.X = pixelMousePositionX;
现在它抛出了这个错误:无法修改
“恐龙岛。恐龙。位置”,因为它不是一个变量
这是因为点
是结构而不是引用类型。因此,您必须创建一个新点
Point oldLocation = Dinosaurs.Last().Location;
Dinosaurs.Last().Location = new Point { X = pixelMousePositionX, Y = oldLocation.Y };
考虑到您的操作方式,您必须按项目的索引引用该项目:
Dinosaurs[Dinosaurs.Count - 1].Location.X = pixelMousePositionX;
或者直接引用对象:
Dinosaurs.Last().Location.X = pixelMousePositionX;
考虑到您的操作方式,您必须按项目的索引引用该项目:
Dinosaurs[Dinosaurs.Count - 1].Location.X = pixelMousePositionX;
或者直接引用对象:
Dinosaurs.Last().Location.X = pixelMousePositionX;
您必须根据项目的索引来引用该项目。。。也许可以尝试
恐龙[Digoros.Count-1].Location.X=pixelMousePositionX
或恐龙.Last.Location.X=pixelMousePositionX代码>进行了更改,现在抛出此错误:无法修改“DigonaIsland.Digonar.Location”的返回值,因为它不是变量。您必须通过其索引引用该项。。。也许可以尝试恐龙[Digoros.Count-1].Location.X=pixelMousePositionX
或恐龙.Last.Location.X=pixelMousePositionX代码>进行了更改,现在抛出了此错误:无法修改'DigonaIsland.Digonar.Location'的返回值,因为它不是变量。感谢您的快速回答。现在它抛出了这个错误:无法修改'DigonaIsland.Digonar.Location'的返回值,因为它不是一个变量。没错,在C#中,结构是不可变的(在创建结构后不能更改它们)。DataTime是另一个很好的例子。谢谢你的快速回答。现在它抛出了这个错误:无法修改'DigonaIsland.Digonar.Location'的返回值,因为它不是一个变量。没错,在C#中,结构是不可变的(在创建结构后不能更改它们)。DataTime是这方面的另一个很好的例子。您知道它现在抛出此错误的原因吗:无法修改“恐龙岛.恐龙.位置”的返回值,因为它不是变量。您知道它现在抛出此错误的原因吗:无法修改“恐龙岛.恐龙.位置”的返回值,因为它不是变量。谢谢您的快速回复回答知道它现在抛出此错误的原因吗:无法修改“DigonaIsland.Digonar.Location”的返回值,因为它不是变量。感谢您的快速响应。知道它现在抛出此错误的原因吗:无法修改“DigonaIsland.Digonar.Location”的返回值,因为它不是变量。