Auf Englisch lesen

Freigeben über


List<T>.AddRange(IEnumerable<T>) Methode

Definition

Fügt die Elemente der angegebenen Auflistung am Ende von List<T> hinzu.

C#
public void AddRange (System.Collections.Generic.IEnumerable<T> collection);

Parameter

collection
IEnumerable<T>

Die Auflistung, deren Elemente am Ende der List<T> hinzugefü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.

Beispiele

Im folgenden Beispiel wird die AddRange -Methode und verschiedene andere Methoden der -Klasse veranschaulicht, die List<T> auf Bereiche reagieren. Ein Array von Zeichenfolgen wird erstellt und an den Konstruktor übergeben, wobei die Liste mit den Elementen des Arrays aufgefüllt wird. Die AddRange -Methode wird aufgerufen, wobei die Liste als Argument verwendet wird. Das Ergebnis ist, dass die aktuellen Elemente der Liste am Ende der Liste hinzugefügt werden, wodurch alle Elemente dupliziert werden.

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

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

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 zugewiesen wird, um die neuen Elemente aufzunehmen, und die vorhandenen Elemente werden in das neue Array kopiert, bevor die neuen Elemente hinzugefügt werden.

Wenn die List<T> die neuen Elemente aufnehmen kann, ohne zu erhöhen, ist diese CapacityMethode ein O(n)-Vorgang, wobei n die Anzahl der hinzuzufügenden Elemente ist. Wenn die Kapazität erhöht werden muss, um die neuen Elemente aufzunehmen, wird diese Methode zu einem 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