![](/img/trans.png)
[英]How can I store the record into string array from Enumerable model list
[英]How to "change" a record inside a list / array / enumerable?
我有一个不可变的记录列表,我需要“更改”其中一个记录中的值。 这当然意味着创建 object 的副本,更改该值,然后引用新记录而不是列表中的旧记录。
我想知道在 C# 中是否有一些聪明而简洁的方法。 到目前为止,我只想到了一种简单的方法:
例如:
var newRecord = oldRecord with { Field = newValue};
var index = list.IndexOf(oldRecord);
list[index] = newRecord;
或者,如果它不是列表而是 Enumerable,则删除一个项目并放置一个新项目,例如
看起来dotnet
实际上在System.Collections.Immutable
中有许多类。
ImmutableList
有一个Replace
function 可以满足我的需要。
它也将返回一个新列表,因为列表本身是不可变的,因此如果不希望这样做,则必须实现一个大致相同的扩展方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.