修改结构列表中的元素
使用结构列表时,尝试使用简单的赋值结果更改单个元素在错误消息“无法修改 System.Collections.Generic.List.this[int] 的返回值,因为它不是变量。”这是由于结构体的值类型语义造成的。
理解值类型语义
在 C# 中,结构体变量保存数据的副本,意味着对副本进行的任何修改不影响原来的。此行为与类不同,类中对象引用指向实际数据。
访问和修改结构元素
在提供的示例中,当分配 MyList[1] 时。命名为“bob”,创建 MyStruct 的新实例并将其分配给该变量。但是,这个新实例并不引用列表中的原始元素。因此,原始元素保持不变。
修改列表中结构体元素的选项
要修改结构体列表中的实际元素,请考虑以下方法:
在结构体和类之间进行选择
决定使用结构体还是类不应主要基于将它们存储在集合中的需要。相反,请考虑所表示的数据的语义和要求。对于表示单个不可变值的值对象,结构通常是首选。另一方面,类擅长表示具有可变状态和潜在复杂关系的对象。
以上是如何在 C# 中修改结构列表中的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!