Je veux créer une méthode d'extension qui fonctionne sur une liste et d'accepter une autre liste:La méthode d'extension sur ICollection <T> ne change pas la liste d'appels?
public static void Charge<T, S>(this ICollection<T> targetList, ICollection<S> sourceList) where T : class, new()
{
if (targetList == null || sourceList == null)
throw new NullReferenceException();
targetList = new List<T>();
foreach (var item in sourceList)
{
T t = new T();
//do work on t
targetList.Add(t);
}
}
mais quand je l'appelle comme ceci:
var targetList = new List<Item>();
targetList.Charge(sourceList);
la targetList
ne change pas (articles comptent = 0)
Supprimer 'targetList = new Liste();' –
Pourquoi faites-vous 'targetList = new Liste();'? –
rbm
Vous ne renvoyez pas la liste cible, vous ne la gérez pas non plus en tant que référence. – Trioj