List<T>.GetRange(Int32, Int32) Methode

Definition

Erstellt eine flache Kopie eines Bereichs von Elementen in der Quelle List<T>.

public:
 System::Collections::Generic::List<T> ^ GetRange(int index, int count);
public System.Collections.Generic.List<T> GetRange(int index, int count);
member this.GetRange : int * int -> System.Collections.Generic.List<'T>
Public Function GetRange (index As Integer, count As Integer) As List(Of T)

Parameter

index
Int32

Der nullbasierte List<T> Index, an dem der Bereich beginnt.

count
Int32

Die Anzahl der Elemente im Bereich.

Gibt zurück

Eine flache Kopie eines Bereichs von Elementen in der Quelle List<T>.

Ausnahmen

index ist kleiner als 0.

-oder-

count ist kleiner als 0.

index und count geben Sie keinen gültigen Bereich von Elementen in der List<T>.

Beispiele

Das folgende Beispiel veranschaulicht die GetRange Methode und andere Methoden der Klasse, die List<T> auf Bereiche reagieren. Am Ende des Beispiels wird die GetRange Methode verwendet, um drei Elemente aus der Liste abzurufen, beginnend mit Indexspeicherort 2. Die ToArray Methode wird für das resultierende List<T>Element aufgerufen, wodurch ein Array mit drei Elementen erstellt wird. Die Elemente des Arrays werden angezeigt.

using System;
using System.Collections.Generic;

string[] input = { "Apple",
                   "Banana",
                   "Orange" };

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

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

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

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

Console.WriteLine();
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

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

Console.WriteLine();
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

input = new string[] { "Mango",
                       "Pineapple",
                       "Watermelon" };

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

Console.WriteLine();
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

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

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

/*
    This code example produces the following output:

    Capacity: 3

    Apple
    Banana
    Orange

    AddRange(fruits)

    Apple
    Banana
    Orange
    Apple
    Banana
    Orange

    RemoveRange(2, 2)

    Apple
    Banana
    Banana
    Orange

    InsertRange(3, input)

    Apple
    Banana
    Banana
    Mango
    Pineapple
    Watermelon
    Orange

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

    Banana
    Mango
    Pineapple
*/
Imports System.Collections.Generic

Partial Public Class Program
    Public Shared Sub ShowFruits()

        Dim input() As String = { "Apple", _
                                  "Banana", _
                                  "Orange" }

        Dim fruits As New List(Of String)(input)

        Console.WriteLine(vbLf & "Capacity: {0}", fruits.Capacity)
        Console.WriteLine()

        For Each fruit As String In fruits
            Console.WriteLine(fruit)
        Next

        Console.WriteLine(vbLf & "AddRange(fruits)")
        fruits.AddRange(fruits)

        Console.WriteLine()
        For Each fruit As String In fruits
            Console.WriteLine(fruit)
        Next

        Console.WriteLine(vbLf & "RemoveRange(2, 2)")
        fruits.RemoveRange(2, 2)

        Console.WriteLine()
        For Each fruit As String In fruits
            Console.WriteLine(fruit)
        Next

        input = New String() { "Mango", _
                               "Pineapple", _
                               "Watermelon" }

        Console.WriteLine(vbLf & "InsertRange(3, input)")
        fruits.InsertRange(3, input)

        Console.WriteLine()
        For Each fruit As String In fruits
            Console.WriteLine(fruit)
        Next

        Console.WriteLine(vbLf & "output = fruits.GetRange(2, 3).ToArray")
        Dim output() As String = fruits.GetRange(2, 3).ToArray()

        Console.WriteLine()
        For Each fruit As String In output
            Console.WriteLine(fruit)
        Next

    End Sub
End Class

' This code example produces the following output:
'
' Capacity: 3
'
' Apple
' Banana
' Orange
'
' AddRange(fruits)
'
' Apple
' Banana
' Orange
' Apple
' Banana
' Orange
'
' RemoveRange(2, 2)
'
' Apple
' Banana
' Banana
' Orange
'
' InsertRange(3, input)
'
' Apple
' Banana
' Banana
' Mango
' Pineapple
' Watermelon
' Orange
'
' output = fruits.GetRange(2, 3).ToArray
'
' Banana
' Mango
' Pineapple

Hinweise

Eine flache Kopie einer Auflistung von Verweistypen oder einer Teilmenge dieser Auflistung enthält nur die Verweise auf die Elemente der Auflistung. Die Objekte selbst werden nicht kopiert. Die Verweise in der neuen Liste verweisen auf dieselben Objekte wie die Verweise in der ursprünglichen Liste.

Eine flache Kopie einer Auflistung von Werttypen oder einer Teilmenge dieser Auflistung enthält die Elemente der Auflistung. Wenn die Elemente der Auflistung jedoch Verweise auf andere Objekte enthalten, werden diese Objekte nicht kopiert. Die Verweise in den Elementen der neuen Auflistung verweisen auf dieselben Objekte wie die Verweise in den Elementen der ursprünglichen Auflistung.

Im Gegensatz dazu kopiert eine tiefe Kopie einer Auflistung die Elemente und alles direkt oder indirekt von den Elementen referenziert.

Diese Methode ist ein O(n)-Vorgang, wobei n ist count.

Gilt für:

Weitere Informationen