public static void InsertRange <T>(IList <T> collection, int index, IEnumerable <T> items) { ContractUtils.RequiresNotNull(collection, nameof(collection)); ContractUtils.RequiresNotNull(items, nameof(items)); ContractUtils.RequiresArrayInsertIndex(collection, index, nameof(index)); if (collection is List <T> list) { list.InsertRange(index, items); } else { int i = index; foreach (T obj in items) { collection.Insert(i++, obj); } } }
public static void InsertRange <T>(IList <T> collection, int index, IEnumerable <T> items) { ContractUtils.RequiresNotNull(collection, "collection"); ContractUtils.RequiresNotNull(items, "items"); ContractUtils.RequiresArrayInsertIndex(collection, index, "index"); List <T> list = collection as List <T>; if (list != null) { list.InsertRange(index, items); } else { int i = index; foreach (T obj in items) { collection.Insert(i++, obj); } } }