7

List<Person>タイプの PeopleCollection という変数があるとします

以下のステートメントでは、newPeople は PeopleCollection のディープ コピーを取得しますか?

var newPeople=(from p in PeopleCollection select p).ToList();

newPeople への操作は PeopleCollection に影響しますか?

4

2 に答える 2

10

これにより、新しいリストが作成され、そのリストにあったすべてのアイテムが新しいリストに追加されます。これらのアイテムすべての「浅い」コピーを実行するため、それらのアイテムが変更可能な参照型である場合、それらの変更はいずれかのコレクションから反映されます。

つまり、どちらかのリスト自体への変更 (項目の追加、項目の削除など) は、リスト内の任意の項目への変更がいずれかのコレクションから反映されても、もう一方のリストには反映されません。

(一言で言えば、いいえ、そうはなりません。)

于 2013-04-22T19:04:50.477 に答える
3

Listによって返される同じオブジェクトを参照する を返しますEnumerable

于 2013-04-22T19:06:11.397 に答える