为了账号安全,请及时绑定邮箱和手机立即绑定

更改结构列表中元素的值

更改结构列表中元素的值

C#
紫衣仙女 2019-10-31 14:01:42
我有一个结构列表,我想更改一个元素。例如 :MyList.Add(new MyStruct("john");MyList.Add(new MyStruct("peter");现在,我想更改一个元素:MyList[1].Name = "bob"但是,每当我尝试执行此操作时,都会出现以下错误:无法修改System.Collections.Generic.List.this [int]'的返回值,因为它不是变量如果我使用类列表,则不会发生此问题。我猜答案与结构是值类型有关。因此,如果我有一个结构列表,我应该将它们视为只读吗?如果我需要更改列表中的元素,那么应该使用类而不是结构?
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

MyList[1] = new MyStruct("bob");

C#中的struct应该几乎总是设计成不可变的(也就是说,一旦创建,就无法更改其内部状态)。


在您的情况下,您要做的是替换指定数组索引中的整个结构,而不是尝试仅更改单个属性或字段。


查看完整回答
反对 回复 2019-10-31
  • 3 回答
  • 0 关注
  • 492 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信