Lorsque ToList() est appelée, crée-t-elle une nouvelle liste ?
Dans ce scénario, nous travaillons avec une classe appelée MyObject qui possède une propriété appelée SimpleInt. Disons que nous avons une liste d'instances MyObject. Si nous devions exécuter ToList() sur cette liste et modifier ensuite la propriété SimpleInt de l'un des éléments de la nouvelle liste, ce changement se propagerait-il à la liste d'origine ?
Comprendre ToList( ) Fonction
La méthode ToList() est conçue pour créer une nouvelle copie de la liste originale. Cependant, dans cette situation spécifique, nous avons affaire à des types référence (c'est-à-dire que MyObject est un type référence). Cela signifie que lorsque nous créons une nouvelle liste à l'aide de ToList(), la nouvelle liste contiendra des références aux mêmes objets que la liste d'origine.
Conséquence des types de référence
Puisque MyObject est un type référence, la modification de la propriété SimpleInt d'un objet référencé dans la nouvelle liste affectera également l'objet correspondant dans la liste d'origine. En effet, les deux listes pointent vers les mêmes instances.
Struct vs. Class
Il est important de noter que ce comportement ne s'applique qu'aux types référence. Si MyObject était déclaré comme une structure (type valeur) au lieu d'une classe (type référence), la liste nouvellement créée via ToList() contiendrait des copies des éléments de la liste d'origine. Par conséquent, toute modification apportée à un élément struct dans la nouvelle liste n'impactera pas la liste d'origine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!