如何修改List成员的内容?

fwc 2013-12-25 11:55:42
比如定义个结构
struct test{
public int a;
public int b;
}

定义个List List<test> list;

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


那么如果要修改List中某个对象的某个成员值,有什么简便的办法。
...全文
372 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fwc 2014-01-13
  • 打赏
  • 举报
回复
嗯,明白了,感谢各位。
欢乐的小猪 2013-12-26
  • 打赏
  • 举报
回复
引用 3 楼 bdmh 的回复:
如上所述,struct是值类型,不是引用类型
++
bdmh 2013-12-25
  • 打赏
  • 举报
回复
如上所述,struct是值类型,不是引用类型
gomoku 2013-12-25
  • 打赏
  • 举报
回复
因为test是一个结构,list[0]返回了一个结构的拷贝。因为在拷贝上修改a是没有意义的,所以编译器给出错误提示。 你可以把struct改成class。或者,以结构为单位进行操作:

test t = list[0];
t.a = 123;
list[0] = t;
@云淡风轻~ 2013-12-25
  • 打赏
  • 举报
回复
枚举器只能读,不能更改,
小猪八Q 2013-12-25
  • 打赏
  • 举报
回复
引用 4 楼 xiaozhu39505 的回复:
[quote=引用 2 楼 gomoku 的回复:] 因为test是一个结构,list[0]返回了一个结构的拷贝。因为在拷贝上修改a是没有意义的,所以编译器给出错误提示。 你可以把struct改成class。或者,以结构为单位进行操作:

test t = list[0];
t.a = 123;
list[0] = t;
+1[/quote] +10086
飞小猪 2013-12-25
  • 打赏
  • 举报
回复
引用 2 楼 gomoku 的回复:
因为test是一个结构,list[0]返回了一个结构的拷贝。因为在拷贝上修改a是没有意义的,所以编译器给出错误提示。 你可以把struct改成class。或者,以结构为单位进行操作:

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

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧