私は多くを検索しましたが、この質問は何度も尋ねられましたが、私の問題に適切な解決策を見つけることはできません。カスタムリストオブジェクトを別のリストオブジェクトにコピー
私は次のような構造
namespace Website.Models
{
public class DynamicControlModel
{
}
public class QuestionnairModel
{
public long QuestionId { get; set; }
public string Question { get; set; }
public List<QuestionnairOptionModel> QuestionnairOption { get; set; }
}
public class QuestionnairOptionModel
{
public long OptionId { get; set; }
public string OptionString { get; set; }
public bool OptionControl1 { get; set; }
public string OptionControl2 { get; set; }
}
}
を持つクラスを持っていると私はこれを行うにしてみてください。こっち
public ActionResult ProcessRequest(List<QuestionnairModel> model)
{
List<QuestionnairModel> result = new List<QuestionnairModel>(model);
result = result.Where(x => x.QuestionnairOption.Any(l => l.OptionControl1 == true)).ToList();
result.ForEach(x => x.QuestionnairOption.RemoveAll(m => m.OptionControl1 == false));
return View(@"~\Views\Home\About.cshtml", model);
}
問題は、私は結果オブジェクトから項目を削除するときにも同様にモデルから削除されるです。結果オブジェクトの変更によってモデルオブジェクトに影響が及ばないようにしたい。
私は、クラスがデフォルトで参照渡しであることを知っています。そのため、両方のオブジェクトからクラスが削除されます。
問題を解決する可能性のある値渡しをどのようにすればよいか教えてください。
http://stackoverflow.com/questions/78536/deep-cloning-objects –