コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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);
                }
            }
        }