8
votes

Brève moyen d'ajouter de l'article après l'article dans la liste?

S'il y a une courte voie en plus de la création de boucles et de nouvelles collections pour ajouter des objets après un objet spécifique dans la liste existante?

juste un exemple:

"Amy", "Jerry", "Tony", "Amy", "Jack". Je veux ajouter "Simon" après chaque "Amy" de manière courte


1 commentaires

Si vous faites une édition, veuillez clarifier clairement quelle partie vous avez modifiée afin que les réponses précédentes ne semblent pas hors de propos.


3 Réponses :


13
votes

Si vous savez où vous voulez entrer un élément, vous pouvez faire

List.Insert(position, item)


3 commentaires

Si j'utilise que je devrais connaître chaque position d'article que je souhaite ajouter après, mais lorsque j'ajoute un élément à la liste, cela redimensionnera la liste ou peut-être que j'ai un problème.


Vous pouvez simplement utiliser un pour une boucle au lieu d'une boucle de forach.


vrai mais la longueur ne va pas grandir chaque ajout?




9
votes

Vous pouvez utiliser LINQ pour le faire.

List<String> list = new List<String>() { "amy","jerry","tony","amy","jack" };
list.AddAfterEach(p => p == "amy", "simon");


2 commentaires

Cet échec n'a-t-il pas échoué comme la collection a changé?


@Darrenyoung Nope, la commande nécessite de traiter tous les éléments de la liste, de sorte que l'énumérable ne remarquera pas que la liste a été modifiée. Le code est testé quand même et fonctionne bien.