List<T>.InsertRange(Int32, IEnumerable<T>) Metoda

Definice

Vloží prvky kolekce do List<T> zadaného indexu.

public void InsertRange (int index, System.Collections.Generic.IEnumerable<T> collection);

Parametry

index
Int32

Index založený na nule, do kterého by měly být vloženy nové prvky.

collection
IEnumerable<T>

Kolekce, jejíž prvky mají být vloženy do objektu List<T>. Samotná kolekce nemůže být null, ale může obsahovat prvky, které jsou null, pokud T typ je typ odkazovým typem.

Výjimky

collection je null.

index je menší než 0.

-nebo-

index je větší než Count.

Příklady

Následující příklad ukazuje InsertRange metodu a různé další metody List<T> třídy, které fungují na rozsahy. Poté, co byl seznam vytvořen a naplněn názvy několika pokojných rostlin-jíst dinosaurů, InsertRange metoda se používá k vložení pole tří divokých masožravých dinosaurů do seznamu, počínaje indexem umístění 3.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        string[] input = { "Brachiosaurus",
                           "Amargasaurus",
                           "Mamenchisaurus" };

        List<string> dinosaurs = new List<string>(input);

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nAddRange(dinosaurs)");
        dinosaurs.AddRange(dinosaurs);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nRemoveRange(2, 2)");
        dinosaurs.RemoveRange(2, 2);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        input = new string[] { "Tyrannosaurus",
                               "Deinonychus",
                               "Velociraptor"};

        Console.WriteLine("\nInsertRange(3, input)");
        dinosaurs.InsertRange(3, input);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\noutput = dinosaurs.GetRange(2, 3).ToArray()");
        string[] output = dinosaurs.GetRange(2, 3).ToArray();

        Console.WriteLine();
        foreach( string dinosaur in output )
        {
            Console.WriteLine(dinosaur);
        }
    }
}

/* This code example produces the following output:

Capacity: 3

Brachiosaurus
Amargasaurus
Mamenchisaurus

AddRange(dinosaurs)

Brachiosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Amargasaurus
Mamenchisaurus

RemoveRange(2, 2)

Brachiosaurus
Amargasaurus
Amargasaurus
Mamenchisaurus

InsertRange(3, input)

Brachiosaurus
Amargasaurus
Amargasaurus
Tyrannosaurus
Deinonychus
Velociraptor
Mamenchisaurus

output = dinosaurs.GetRange(2, 3).ToArray()

Amargasaurus
Tyrannosaurus
Deinonychus
 */

Poznámky

List<T> přijímá null jako platnou hodnotu pro odkazové typy a umožňuje duplicitní elementy.

Pokud bude nová Count hodnota (aktuální Count plus velikost kolekce) větší než Capacity, kapacita List<T> objektu se zvýší automatickým opětovným přidělením interního pole tak, aby vyhovovalo novým prvkům, a existující prvky se zkopírují do nového pole před přidáním nových prvků.

Pokud index je roven Count, elementy se přidají na konec .List<T>

Pořadí prvků v kolekci je zachováno v objektu List<T>.

Tato metoda je operace O(n * m), kde n je počet prvků, které se mají přidat, a m je Count.

Platí pro

Viz také