如何克隆一个列表对象
本文关键字:一个 列表 对象 何克隆 | 更新日期: 2023-09-27 18:12:00
嗨,我正在尝试克隆一个具有成员列表对象的对象
public class GrossTemplatesInfo
{
public List<GrossTemplates> grossTemplates { get; set; }
public object Clone()
{
GrossTemplatesInfo other = (GrossTemplatesInfo)this.MemberwiseClone();
other.grossTemplates = new List<GrossTemplates>(grossTemplates);
return other;
}
}
public class GrossTemplates : ICloneable
{
public string tempID { get; set; }
public string PreferenceName { get; set; }
public string PreferenceValue { get; set; }
public bool isDefault { get; set; }
object ICloneable.Clone()
{
return this.Clone();
}
public object Clone()
{
return this.MemberwiseClone();
}
}
我的方法是这样的
public static GrossTemplatesInfo LoadInitialdata(string caseType)
{
GrossTemplatesInfo a = new GrossTemplatesInfo();
GrossTemplatesInfo b = a.Clone() as GrossTemplatesInfo;
}
我已经这样做了,我没有得到克隆对象'b'中的值,这些值在原始对象'a'中。任何帮助吗?我对这种克隆机制有点陌生。
你想克隆你的容器类,所以你需要在它上面实现iclonable (GrossTemplatesInfo)。
处理GrossTemplates类,三种可能性:
1、手动操作:
public object Clone()
{
return new GrossTemplates()
{
tempId = this.tempId,
PreferenceName = this.PreferenceName,
PreferenceValue = this.PreferenceValue,
IsDefault = this.IsDefault
};
}
2、使用这里描述的通用帮助器(参见@ uiil注释)
3、重新考虑整个上下文(或向我们解释),不要复制实例