の汎用リストのクローン C#では、クローン化されたジェネリックオブジェクトのリストは課題です。なぜなら、構築された-Inクラスは直接「clone()」ではないためです。ただし、この機能を達成するにはいくつかの方法があります。
値型クローンList<T>
リストの要素が値タイプの場合、同じ要素を含む新しいリストを作成できます。 iclonableクローン化された参照タイプ
を使用します
要素が参照タイプであり、深くコピーする必要がある場合(つまり、新しいリストとその要素は元のリストとは何の関係もありません)、List<MyValueType> newList = new List<MyValueType>(oldList);
上記のコードの「iclonable」は、の実際の要素タイプに置き換えられます。
<复>コピーコンストラクタークローン参照タイプを使用してくださいICloneable
List<ICloneable> oldList = new List<ICloneable>(); List<ICloneable> newList = new List<ICloneable>(oldList.Count); oldList.ForEach(item => newList.Add((ICloneable)item.Clone()));
ICloneable
このメソッドは、コピーコンストラクターを使用して、各要素の新しいインスタンスを作成します。
カスタムクローンメソッド
便利なため、カスタムクローンメソッドでこれらのメソッドのいずれかをカプセル化できます。
ICloneable
このメソッドは汎用リストを受け入れ、新しいクローンリストを返し、要素のタイプに従って適切なクローンメソッドを選択します。
以上がC#で一般的なリストを効果的にクローンする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。