ホームページ > バックエンド開発 > C++ > ToList() はリストの深いコピーまたは浅いコピーを作成しますか?

ToList() はリストの深いコピーまたは浅いコピーを作成しますか?

Barbara Streisand
リリース: 2024-12-30 19:25:11
オリジナル
784 人が閲覧しました

Does ToList() Create a Deep Copy or a Shallow Copy of a List?

ToList() が呼び出されるとき、新しいリストは作成されますか?

このシナリオでは、というクラスを使用しています。 SimpleInt というプロパティを持つ MyObject。 MyObject インスタンスのリストがあるとします。このリストに対して ToList() を実行し、その後新しいリスト内の要素の 1 つの SimpleInt プロパティを変更した場合、この変更は元のリストに反映されますか?

ToList( ) Function

ToList() メソッドは、元のリストの新しいコピーを作成するように設計されています。ただし、この特定の状況では、参照型を扱っています (つまり、MyObject は参照型です)。これは、ToList() を使用して新しいリストを作成すると、新しいリストには元のリストと同じオブジェクトへの参照が含まれることを意味します。

参照型の結果

MyObject は参照型であるため、新しいリストで参照されるオブジェクトの SimpleInt プロパティを変更すると、元のリストの対応するオブジェクトにも影響します。これは、両方のリストが同じインスタンスを指しているためです。

構造体とクラス

この動作は参照型にのみ適用されることに注意することが重要です。 MyObject がクラス (参照型) ではなく構造体 (値型) として宣言された場合、ToList() によって新しく作成されたリストには、元のリスト要素のコピーが含まれます。したがって、新しいリスト内の構造体要素に加えられた変更は、元のリストには影響しません。

以上がToList() はリストの深いコピーまたは浅いコピーを作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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