Поскольку интерфейс, как правило, является наименьшей функциональностью, необходимой для его использования, для снижения нагрузки на разработчиков. С C # 3.0 вы можете добавить это как метод расширения:
public static void AddRange<T>(this IList<T> list, IEnumerable<T> items) {
if(list == null) throw new ArgumentNullException("list");
if(items == null) throw new ArgumentNullException("items");
foreach(T item in items) list.Add(item);
}
и вуаля; IList<T>
теперь имеет AddRange
:
IList<string> list = ...
string[] arr = {"abc","def","ghi","jkl","mno"};
list.AddRange(arr);