Purtroppo non c'è nessuna interfaccia che definisca AddRange sulle collection, quindi non c'è ICollection o IList che tenga.
A rimediare elegantemente ci pensano gli extension method che ci permettono di aggiungere AddRange in questo modo:
public static class CollectionExtension
{
public static void AddRange<T>(this ICollection<T> list, IEnumerable<T> elements)
{
foreach (var e in elements)
list.Add(e);
}
}
Fatto questo, supponendo di avere una: IList<qualcosa> collection = new ….;
basterà scrivere: collection.AddRange(…);
IList infatti deriva da ICollection e quindi l'estensione di ICollection è la più appropriata.
Apparentemente si salva solo una riga di codice ma quando cominciate ad avere parecchio codice che usa Linq la pulizia di codice guadagnata fa una bella differenza.