主要是因为你的Student是struct,所以是值类型,因为值类型无法返回引用,所以索引器返回的,是你添加进去的Student副本;因为是副本,所以你的修改是无法影响到List中的数据的,所以就无法保存回去,这也从侧面说明了错误信息(不是变量,一个固定的值,当然不是变量了。)
如果你要修改的话,只能重新赋值: stuList[0] = new Student();
或者你可以取出这个副本,对这个副本赋值:
var stu = stuList[0]; stu.age = 10;//此更改不会影响List的值,因为是副本。
List<student> stuList = new List<student>();
stuList.add(new student(){ age = 10......});
给List集合添加数据用add,慢慢学吧。
没有东西你不能这样访问。用add()
如果你非要这样。先添加一个
stuList.Ad(new student());
stuList[0].age=10;