Auf Englisch lesen

Freigeben über


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

Definition

Fügt die Elemente einer Auflistung am angegebenen Index in die List<T> ein.

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

Parameter

index
Int32

Der nullbasierte Index, an dem neue Elemente eingefügt werden sollen.

collection
IEnumerable<T>

Die Sammlung, deren Elemente in die List<T> eingefügt werden sollen. Die Auflistung an sich kann nicht null sein, sie kann jedoch Elemente enthalten, die null sind, wenn Typ T einen Referenztyp darstellt.

Ausnahmen

collection ist null.

index ist kleiner als 0.

- oder -

index ist größer als Count.

Beispiele

Das folgende Beispiel veranschaulicht InsertRange die Methode und verschiedene andere Methoden der -Klasse, die List<T> auf Bereiche reagieren. Nachdem die Liste erstellt und mit den Namen mehrerer friedlicher pflanzenfressender Dinosaurier gefüllt wurde, wird die InsertRange Methode verwendet, um ein Array von drei wilden fleischfressenden Dinosauriern in die Liste einzufügen, beginnend bei Indexposition 3.

C#
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
 */

Hinweise

List<T> akzeptiert null als gültiger Wert für Verweistypen und lässt doppelte Elemente zu.

Wenn das neue Count (aktuelle Count plus die Größe der Auflistung) größer als Capacityist, wird die Kapazität von List<T> erhöht, indem das interne Array automatisch neu zugeordnet wird, um die neuen Elemente aufzunehmen, und die vorhandenen Elemente werden in das neue Array kopiert, bevor die neuen Elemente hinzugefügt werden.

Wenn index gleich ist, Countwerden die Elemente am Ende von List<T>hinzugefügt.

Die Reihenfolge der Elemente in der Auflistung wird im List<T>beibehalten.

Bei dieser Methode handelt es sich um einen O(n * m)-Vorgang, wobei n die Anzahl der hinzuzufügenden Elemente und m für ist Count.

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Weitere Informationen