我想要制作一个泛型列表的深拷贝,想知道是否有其他方法可以实现,而不必创建复制方法并逐一复制每个成员。 我有一个类看起来有点像这样:
public class Data
{
private string comment;
public string Comment
{
get { return comment; }
set { comment = value; }
}
private List<double> traceData;
public List<double> TraceData
{
get { return traceData; }
set { traceData = value; }
}
}
我有一个上述数据的列表,即List<Data>
。我想做的是将列表的子集的跟踪数据绘制到图形上,可能对数据进行一些缩放或扫描。显然,我不需要绘制列表中的所有内容,因为它们不能适应屏幕。
我最初尝试使用List.GetRange()
方法获取列表的子集,但似乎底层的List<double>
只进行了浅复制,而不是深复制。当我再次使用List.GetRange()获取子集时,我得到的是之前修改过的数据,而不是从其他地方检索到的原始数据。
有人可以指导我如何解决这个问题吗?非常感谢。
List<double>
的“深拷贝”会是什么?它是一个数字列表,不像 Button 类的列表或者其他可能需要复制成员的列表。 - CodingGorillaData.TraceData.GetRange()
创建指定子集的副本 - 这是一个选项吗?(由于双精度是值类型,因此GetRange
创建浅表副本并不重要。) - Jeff Sternal