List<T>.InsertRange(Int32, IEnumerable<T>) Metode

Definisi

Menyisipkan elemen koleksi ke dalam List<T> pada indeks yang ditentukan.

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))

Parameter

index
Int32

Indeks berbasis nol tempat elemen baru harus disisipkan.

collection
IEnumerable<T>

Koleksi yang elemennya harus dimasukkan ke List<T>dalam . Koleksi itu sendiri tidak boleh null, tetapi dapat berisi elemen yang , nulljika jenis T adalah jenis referensi.

Pengecualian

collection adalah null.

index kurang dari 0.

-atau-

index lebih besar dari Count.

Contoh

Contoh berikut menunjukkan InsertRange metode dan berbagai metode lain dari List<T> kelas yang bertindak berdasarkan rentang. Setelah daftar dibuat dan diisi dengan nama-nama beberapa dinosang pemakan tanaman yang damai, InsertRange metode ini digunakan untuk memasukkan array tiga dinosang pemakan daging yang ganas ke dalam daftar, dimulai dari lokasi indeks 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

Keterangan

List<T> menerima null sebagai nilai yang valid untuk jenis referensi dan memungkinkan elemen duplikat.

Jika yang baru Count (saat ini Count ditambah ukuran koleksi) akan lebih besar dari Capacity, kapasitas List<T> ditingkatkan dengan secara otomatis merealokasi array internal untuk mengakomodasi elemen baru, dan elemen yang ada disalin ke array baru sebelum elemen baru ditambahkan.

Jika index sama dengan Count, elemen ditambahkan ke akhir List<T>.

Urutan elemen dalam koleksi dipertahankan dalam List<T>.

Metode ini adalah operasi O(n * m), di mana n adalah jumlah elemen yang akan ditambahkan dan m adalah Count.

Berlaku untuk

Lihat juga