Passer la Liste à la méthode sans modification de la liste d'origine
Est-ce la seule façon de passer d'une Liste à une méthode et à l'édition de cette Liste, sans modifier l'original de la Liste?
class CopyTest1
{
List<int> _myList = new List<int>();
public CopyTest1(List<int> l)
{
foreach (int num in l)
{
_myList.Add(num);
}
_myList.RemoveAt(0); //no effect on original List
}
}
Non, ce n'est pas la seule façon.
Est-ce
Quelle est la question?
Oui - c'est ma question
Est-ce
a
façon de passer d'une Liste à une méthode et à l'édition de cette Liste, sans modifier l'original de la Liste?Quelle est la question?
Oui - c'est ma question
OriginalL'auteur Paligulus | 2011-10-10
Vous devez vous connecter pour publier un commentaire.
dupliquer la liste:
et effectuer les opérations sur la liste locale.
OriginalL'auteur Andreas
Utilisation
AsReadOnly
pour cela:Et de l'appeler via
CopyTest1(yourList.AsReadOnly())
.OriginalL'auteur Yahia
Il existe une autre manière. Vous pouvez utiliser le constructeur de copie de
List<T>
:OriginalL'auteur Ilian
Cloner les objets dans la liste à une autre liste et de travailler sur cette copie
OriginalL'auteur Saint
Lorsque vous passer d'une liste à une méthode que vous passez un pointeur vers la liste, c'est pourquoi votre changement de l '"original" de la liste quand vous de le modifier à l'intérieur de votre méthode. Si vous voulez modifier une copie de la liste, vous avez juste besoin de faire une. Dans le code qui appelle CopyTest1 vous pouvez créer une nouvelle liste à partir de votre liste d'origine:
Cela dépend de ce que le but de la classe est, est-il faire modifier une collection ou pour créer une copie de collection et de le modifier? L'exemple est un peu artificiel, et je ne pense pas que c'est évident exactement ce que tu voulais.
OriginalL'auteur Simon Stender Boisen
Vous pouvez passer un objet par référence procédant de la manière suivante:
EDIT: La question a été clarifiée, l'OP a été après une manière de ne pas modifier la liste d'origine.
ref
de modifier la liste d'origine --ref
vous permet de modifier la référence en l'appelant est portée à point à un autre objet, de quelque chose qui est très peu susceptible d'être utileOriginalL'auteur dougajmcdonald