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 サイトの他の関連記事を参照してください。