Comment puis-je ajouter un élément à une liste et retourne une nouvelle liste

M'a demandé aujourd'hui à cette question:

Comment puis-je ajouter un élément à une liste et retourner cette liste?

Le code pour List<T>.Add(T) renvoie void. Donc vous ne pouvez pas faire quelque chose comme ceci:

var list = new List<string>{"item1","item2"};
var newList = list.Add("item3");

Ceci est lié à l'utilisation de AutoMapper, bien que la partie n'est pas particulièrement important.

  • Pourquoi voulez-vous créer une nouvelle liste? Pourquoi ne pas ajouter à la liste et de garder renvoyant à l'original?
  • Le problème, je crois, c'est dans Automapper, au lieu de créer un résolveur personnalisé vous pourriez le faire en une seule ligne: ForMember(t=>t.Items,options=>options.MapFrom(s=>new List<string>(t.Items).Add(s.Item)); t.Éléments d'une liste existante dans un objet, éventuellement avec des données existantes, cependant, nous voulons juste pour ajouter de la valeur à partir de la source. Malheureusement, cette ligne en particulier exige de votre pour retourner une valeur, de sorte que Automapper pouvez le mettre à la propriété.
InformationsquelleAutor JasonWilczak | 2015-11-24