J'essaie de faire de la classe statique, d'ajouter à l'Icollection mais j'ai eu des problèmes que je ne peux pas sembler surmonter. C'est comme ça que je reçois pour que je puisse passer une icollection dans la méthode? parce que t est que cela dit que cela ne peut pas être résolu.
Et puis je me demande est là un moyen de faire addrange sur l'ICOLLECTION? P>
Je pensais à quelque chose comme ça mais maby je suis hors de mon Mind avec elle? P>
public static ICollection<T> add(this IEnumerable<T> list) { ICollection<T> collection = null; return collection.AddRange(list); }
4 Réponses :
non, Vous pouvez créer (dire) une nouvelle liste Cependant, à ce point, vous venez vraiment de réimplexer Si vous souhaitez tout ajouter à une collection existante, vous voudrez peut-être quelque chose comme ceci: P> < Pré> xxx pré> p> icollection
addrange code> méthode - et même si c'était le cas, vous essayiez de Déréference
null code> qui lancera un
nullreferenceException code>. Vous n'avez pas spécifié de collection pour ajouter la liste à ... Qu'est-ce que vous essayez exactement de faire?
ienumerable
Enumérable.toliste () Code> et donné un type de retour différent ... p>
Aimez le nouveau nom ... Je n'avais aucune idée de qui c'était non plus. :-P
Il vous manque un argument de méthode générique :)
@Joel: Par conséquent, "à ce stade, vous venez vraiment de réimplément été énumérable.toliste () et lui a donné un type de retour différent ..." :)
Dans .NET 4.0 Liste
AddRange code> méthode - également
INSERTRANGE code>,
Demoverange code> ... effectivement, MSDN montre qu'il est disponible en 3.5
@Aiabstract: Bien sûr, mais ceci est pour Icollection
Liste
dûment noté :) ... depuis Liste
ICOLLECTION
Ne serait-il pas préférable d'avoir le SIG STATIC QUI STATIC Q AddTo
Si je comprends correctement, vous souhaitez ajouter un ne serait-il pas plus facile de faire: P> ienumerable
ICollection<MyObject> collection = GetIEnumerableOfMyObject().ToList();
Je ne savais pas que je pourrais faire une ICollection puis faire la liste comme ça.
Liste
Icollection
Selon le type de collecte de votre liste source Une approche alternative consiste à utiliser < Code> Liste (t) .foreseach code> , comme dans: Cependant, la lisibilité de ceci est facile à contester . p> p>
Les autres moyens semblent supposer que votre iCollection est vide et / ou votre ICollection est un type de liste. Toutefois, si vous voulez addrange, vous pouvez prolonger la classe ICollection comme suit:
public static void AddRange<T>(this ICollection<T> ic, IEnumerable<T> ie) { foreach (T obj in ie) { ic.Add(obj); } }