>有效地复制了c#
中的通用列表>创建通用列表的副本是C#中的常见任务,尽管该语言缺乏直接的list.Clone()
方法。 本文探讨了复制列表的几种有效策略。
值类型列表重复:>
对于包含值类型的列表,复制很简单:这将创建一个与原始元素相同的元素的新列表。 请注意,这将对价值类型执行A
<code class="language-csharp">List<YourType> newList = new List<YourType>(oldList);</code>
。 >深层复制参考类型列表:
> >使用参考类型,必须进行深层复制,以避免共享对象引用。 如果您的元素实现:
ICloneable
这是分别迭代和克隆的克隆。
<code class="language-csharp">List<ICloneable> oldList = new List<ICloneable>(); List<ICloneable> newList = new List<ICloneable>(oldList.Count); oldList.ForEach(item => newList.Add((ICloneable)item.Clone()));</code>
>利用复制构造函数:
:
自定义克隆方法:ICloneable
<code class="language-csharp">List<YourType> oldList = new List<YourType>(); List<YourType> newList = new List<YourType>(oldList.Count); oldList.ForEach(item => newList.Add(new YourType(item)));</code>
)或工厂方法,以提供对克隆过程的细粒度控制。 可重复使用性的
封装:
以上是如何在C#中有效复制通用列表?的详细内容。更多信息请关注PHP中文网其他相关文章!