日期:2014-05-17  浏览次数:21216 次

如何修改List成员的内容?
比如定义个结构
struct test{
public int a;
public int b;
}

定义个List List<test> list;

如果单纯读取没有问题
int a = list[0].a;  //正确
但是如果进行赋值就不行
list[0].a=a;  //错误


那么如果要修改List中某个对象的某个成员值,有什么简便的办法。

------解决方案--------------------
枚举器只能读,不能更改,
------解决方案--------------------
因为test是一个结构,list[0]返回了一个结构的拷贝。因为在拷贝上修改a是没有意义的,所以编译器给出错误提示。

你可以把struct改成class。或者,以结构为单位进行操作:

test t = list[0];
t.a = 123;
list[0] = t;


------解决方案--------------------
如上所述,struct是值类型,不是引用类型
------解决方案--------------------
引用:
因为test是一个结构,list[0]返回了一个结构的拷贝。因为在拷贝上修改a是没有意义的,所以编译器给出错误提示。

你可以把struct改成class。或者,以结构为单位进行操作:

test t = list[0];
t.a = 123;
list[0] = t;


+1
------解决方案--------------------
引用:
Quote: 引用:

因为test是一个结构,list[0]返回了一个结构的拷贝。因为在拷贝上修改a是没有意义的,所以编译器给出错误提示。

你可以把struct改成class。或者,以结构为单位进行操作:

test t = list[0];
t.a = 123;
list[0] = t;


+1

+10086
------解决方案--------------------
引用:
如上所述,struct是值类型,不是引用类型

++