Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改类对象列表中项的值的正确方法_C#_List_Class - Fatal编程技术网

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”的返回值,因为它不是变量。