>有效地複制了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中文網其他相關文章!