ホームページ > バックエンド開発 > C++ > C#で一般的なリストを効果的にクローンする方法は?

C#で一般的なリストを効果的にクローンする方法は?

DDD
リリース: 2025-01-30 20:11:09
オリジナル
526 人が閲覧しました

How to Effectively Clone Generic Lists in C#?

C#

の汎用リストのクローン C#では、クローン化されたジェネリックオブジェクトのリストは課題です。なぜなら、構築された-Inクラスは直接「clone()」ではないためです。ただし、この機能を達成するにはいくつかの方法があります。

値型クローンList<T>

リストの要素が値タイプの場合、同じ要素を含む新しいリストを作成できます。 iclonableクローン化された参照タイプ

を使用します

要素が参照タイプであり、深くコピーする必要がある場合(つまり、新しいリストとその要素は元のリストとは何の関係もありません)、
<code class="language-csharp">List<MyValueType> newList = new List<MyValueType>(oldList);</code>
ログイン後にコピー
インターフェイスを使用できます。

上記のコードの「iclonable」は、の実際の要素タイプに置き換えられます。

コピーコンストラクタークローン参照タイプを使用してください

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このメソッドは、コピーコンストラクターを使用して、各要素の新しいインスタンスを作成します。

カスタムクローンメソッド

便利なため、カスタムクローンメソッドでこれらのメソッドのいずれかをカプセル化できます。

ICloneableこのメソッドは汎用リストを受け入れ、新しいクローンリストを返し、要素のタイプに従って適切なクローンメソッドを選択します。

以上がC#で一般的なリストを効果的にクローンする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート