首頁 > 後端開發 > C++ > 如何在C#中克隆通用列表?

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

Susan Sarandon
發布: 2025-01-30 20:16:12
原創
142 人瀏覽過

How to Clone a Generic List in C#?

在C#

中創建通用列表的副本

本指南探討了在C#中復制通用列表的不同方法。 由於List<T>沒有內置的Clone()方法,我們將研究幾種策略。

>淺副本的值 對於包含值類型的列表(例如),簡單的淺副本就足夠了:

參考類型的

> int深層複製:使用ICLONABLEdouble

>
<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.Capacity); // Use Capacity for efficiency

oldList.ForEach(item =>
{
    newList.Add(new YourType(item));
});</code>
登入後複製
>

>封裝邏輯

>用於改進代碼組織並可重複使用,請考慮將這些技術包裝到擴展方法或專用的助手功能中。 YourType.CopyFrom()

以上是如何在C#中克隆通用列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板