我搜索了很多,我知道这个问题已被问了很多次,但没有找到适合我的问题的解决方案。复制自定义列表对象到另一个列表对象
我有一类具有下列结构
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 –