私はコピーする必要があるList<dynamic>
を持っていますし、リストの行の条件に基づいて、その行のフィールドを変更して2番目のリストに追加する必要があります。C#copyリスト<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は文字列「新しい行」で更新されていることです。
変更するたびに、newObj
の両方のリストが更新されるようです。
私もlist2
この方法を作成しようとしましたが、私は同じ問題があります:私は他の質問に見えたが、私の場合には、私だけdynamic
リストを持っている
:EDIT
var list2 = new BindingList<dynamic>(list1);
を。 Class
を作成せずにICloneable
を実装しなくても、私が望む結果を得ることは可能ですか?
はICloneableを実装し、呼び出してみ 'VAR LIST2 = list1.Select(I => i.Clone())。ToListメソッド()'、おそらく。 – Casey
しかし、実装では、opにはほぼ同じコードを書く必要があります –
2つの異なるリストがありますが、これらのリスト内の*要素*は同じなので、リスト内の要素のいずれかを変更すると、よく – HimBromBeere