0 votes

Comment ajouter automatiquement un élément à une liste au fur et à mesure que je la crée ?

Je veux passer une liste dans une méthode, mais je veux qu'elle ne contienne qu'un seul élément.

Est-il possible de procéder de la même manière que pour l'opération suivante ?

MyType myType = new MyType();
MyMethod(new List<MyType>{ myType }); // somehow add myType to the list as I'm creating it

2voto

Felan Points 998

J'avais tort, la réponse courte ne manquait pas de parenthèses dans l'exemple tel qu'il a été posté. Il doit y avoir une autre erreur de frappe car tout ce qui suit a fonctionné lorsque je l'ai testé :

MyType myType = new MyType();
MyMethod(new List<MyType>{ myType }); 

MyMethod(new List<MyType>{ new MyType(), new MyType() }); 

MyMethod(new List<MyType>{ new MyType() }); 

\======================== Réponse courte : Il manque la parenthèse.

MyType myType = new MyType();
MyMethod(new List<MyType>(){ myType }); 

ou si vous n'avez pas besoin de la variable nommée myType au-delà de l'insertion (de sorte qu'elle ne sera utilisée qu'à partir de la liste)

MyMethod(new List<MyType>(){ new MyType(), new MyType() }); 

Notez que l'exemple ci-dessus insère deux éléments dans la liste. Je l'ai écrit de cette manière pour montrer plusieurs créations. Si vous n'en voulez qu'une seule, comme vous l'avez indiqué dans votre question, c'est ce que vous devez utiliser :

MyMethod(new List<MyType>(){ new MyType() });

1voto

Cameron MacFarland Points 27240

Il manque les parenthèses. Cela devrait fonctionner.

MyMethod(new List<MyType>() { myType });

0voto

Marc Bollinger Points 2288

Il s'agit simplement d'initialisateurs d'objets/de collections, comme nous l'avons souligné. Une suggestion est qu'avant de devenir fou avec des définitions d'objets en ligne, installez et inclinez-vous devant les dieux de StyleCop pour obtenir des conseils sur l'écriture d'un code lisible/durable. Cela permet à mes collègues de ne pas me tuer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X