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

Definitie

Hiermee maakt u een ondiepe kopie van een reeks elementen in de bron 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)

Parameters

index
Int32

De op nul gebaseerde List<T> index waarop het bereik begint.

count
Int32

Het aantal elementen in het bereik.

Retouren

Een ondiepe kopie van een reeks elementen in de bron List<T>.

Uitzonderingen

index is kleiner dan 0.

– of –

count is kleiner dan 0.

index en count geen geldig bereik van elementen in de List<T>.

Voorbeelden

In het volgende voorbeeld ziet u de GetRange methode en andere methoden van de List<T> klasse die op bereiken reageren. Aan het einde van het voorbeeld wordt de GetRange methode gebruikt om drie items uit de lijst op te halen, beginnend met indexlocatie 2. De ToArray methode wordt aangeroepen op het resulterende List<T>, waardoor een matrix van drie elementen wordt gemaakt. De elementen van de matrix worden weergegeven.

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

Opmerkingen

Een ondiepe kopie van een verzameling referentietypen, of een subset van die verzameling, bevat alleen de verwijzingen naar de elementen van de verzameling. De objecten zelf worden niet gekopieerd. De verwijzingen in de nieuwe lijst verwijzen naar dezelfde objecten als de verwijzingen in de oorspronkelijke lijst.

Een ondiepe kopie van een verzameling waardetypen, of een subset van die verzameling, bevat de elementen van de verzameling. Als de elementen van de verzameling echter verwijzingen naar andere objecten bevatten, worden deze objecten niet gekopieerd. De verwijzingen in de elementen van de nieuwe verzameling verwijzen naar dezelfde objecten als de verwijzingen in de elementen van de oorspronkelijke verzameling.

Daarentegen kopieert een diepe kopie van een verzameling de elementen en alles direct of indirect waarnaar wordt verwezen door de elementen.

Deze methode is een O(n)-bewerking, waarbij n is count.

Van toepassing op

Zie ook