List<T>.GetRange(Int32, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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 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.