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

Tanım

Bir koleksiyonun öğelerini belirtilen dizine List<T> ekler.

public:
 void InsertRange(int index, System::Collections::Generic::IEnumerable<T> ^ collection);
public void InsertRange(int index, System.Collections.Generic.IEnumerable<T> collection);
member this.InsertRange : int * seq<'T> -> unit
Public Sub InsertRange (index As Integer, collection As IEnumerable(Of T))

Parametreler

index
Int32

Yeni öğelerin eklenmesi gereken sıfır tabanlı dizin.

collection
IEnumerable<T>

öğeleri içine List<T>eklenmesi gereken koleksiyon. Koleksiyonun kendisi olamaznull, ancak tür null bir başvuru türüyse olan öğeleri Tiçerebilir.

Özel durumlar

collection, null'e eşittir.

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

-veya-

index değerinden Countbüyüktür.

Örnekler

Aşağıdaki örnek, yöntemini ve sınıfın InsertRange aralıklar üzerinde hareket eden diğer çeşitli yöntemlerini gösterirList<T>. Liste oluşturulduktan ve birkaç huzurlu bitki yiyen dinozorların adlarıyla doldurulduktan sonra, InsertRange yöntem dizin konumundan başlayarak listeye üç vahşi et yiyen dinozor dizisi eklemek için kullanılır 3.

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

List<T> başvuru türleri için geçerli bir değer olarak kabul eder null ve yinelenen öğelere izin verir.

Yeni Count (geçerli Count artı koleksiyonun boyutu) değerinden büyükse Capacity, yeni öğelere uyum sağlamak için iç dizi otomatik olarak yeniden yerleştirilerek öğesinin kapasitesi List<T> artırılır ve yeni öğeler eklenmeden önce var olan öğeler yeni diziye kopyalanır.

öğesine eşitse indexCount, öğeleri sonuna List<T>eklenir.

Koleksiyondaki öğelerin sırası içinde List<T>korunur.

Bu yöntem bir O(n * m) işlemidir; burada n eklenecek öğe sayısı, m ise olur Count.

Şunlara uygulanır

Ayrıca bkz.