List<T>.GetRange(Int32, Int32) Yöntem

Tanım

kaynağındaki List<T>bir öğe aralığının sığ bir kopyasını oluşturur.

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)

Parametreler

index
Int32

Aralığın başladığı sıfır tabanlı List<T> dizin.

count
Int32

Aralıktaki öğelerin sayısı.

Döndürülenler

Kaynağındaki List<T>bir öğe aralığının sığ bir kopyası.

Özel durumlar

index 0'dan küçüktür.

-veya-

count 0'dan küçüktür.

index ve count içindeki List<T>geçerli bir öğe aralığını ifade etmeyin.

Örnekler

Aşağıdaki örnek, sınıfın GetRange aralıklar üzerinde hareket eden yöntemini ve diğer yöntemlerini List<T> gösterir. Örneğin sonunda, GetRange dizin konumu 2'den başlayarak listeden üç öğe almak için yöntemi kullanılır. yöntemi ToArray , üç öğeden oluşan bir dizi oluşturarak elde edilen üzerinde çağrılır List<T>. Dizinin öğeleri görüntülenir.

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

Açıklamalar

Başvuru türleri koleksiyonunun sığ bir kopyası veya bu koleksiyonun bir alt kümesi, yalnızca koleksiyonun öğelerine yönelik başvuruları içerir. Nesnelerin kendileri kopyalanmaz. Yeni listedeki başvurular, özgün listedeki başvurularla aynı nesneleri gösterir.

Değer türleri koleksiyonunun sığ bir kopyası veya bu koleksiyonun bir alt kümesi, koleksiyonun öğelerini içerir. Ancak, koleksiyonun öğeleri diğer nesnelere başvurular içeriyorsa, bu nesneler kopyalanmaz. Yeni koleksiyonun öğelerindeki başvurular, özgün koleksiyonun öğelerindeki başvurularla aynı nesnelere işaret eder.

Buna karşılık, bir koleksiyonun derin bir kopyası öğeleri ve öğeler tarafından doğrudan veya dolaylı olarak başvuruda bulunılan her şeyi kopyalar.

Bu yöntem, n olan bir O(n) işlemidircount.

Şunlara uygulanır

Ayrıca bkz.