我需要复制List<dynamic>
,然后根据列表行的条件修改该行的字段并将其添加到第二个列表中。
这是一段代码示例:
//list1 is a `List<dynamic>` that I get from a query using Dapper. I guess it is an ExpandoObject list
var list2 = new List<dynamic>(list1);
foreach (var obj in list2)
{
if (obj.condition == 1)
{
var newObj = obj;
newObj.description = "new row";
list2.Add(newObj);
}
}
我的问题是,在我的列表中,列表中的obj都会更新为字符串&#39; new row&#39;。
似乎每次更改newObj
时,两个列表都会更新。
我也尝试以这种方式创建list2
,但我遇到了同样的问题:
var list2 = new BindingList<dynamic>(list1);
编辑:
我查看了其他问题但在我的情况下,我只有一个dynamic
列表。是否有可能获得我想要的结果而无需创建Class
并实施ICloneable
?
答案 0 :(得分:-1)
尝试
var list2 = list1.Select(x => x);