相关疑难解决方法(0)

如何在C#中克隆通用列表?

我在C#中有一个通用的对象列表,并希望克隆列表.列表中的项目是可复制的,但似乎没有选项可做list.Clone().

有一个简单的方法吗?

c# generics clone list

545
推荐指数
13
解决办法
57万
查看次数

List <T>的深层副本

我正在尝试制作通用列表的深层副本,并且想知道是否有任何其他方法然后创建复制方法并实际上一次复制每个成员.我有一个看起来像这样的课程:

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; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一份上述数据清单,即List<Data>.我要做的是将List子集的跟踪数据绘制到图形上,可能需要对数据进行一些缩放或扫描.我显然不需要在列表中绘制所有内容,因为它们不适合屏幕.

我最初尝试使用该List.GetRange()方法获取列表的子集,但似乎底层List<double>是浅层复制而不是深度复制.当我使用List.GetRange()再次获取子集时,我获得了先前修改过的数据,而不是其他地方检索到的原始数据.

任何人都可以给我一个如何处理这个问题的方向吗?非常感谢.

c# deep-copy

15
推荐指数
3
解决办法
4万
查看次数

标签 统计

c# ×2

clone ×1

deep-copy ×1

generics ×1

list ×1