List<T>.InsertRange(Int32, IEnumerable<T>) 메서드

정의

컬렉션의 List<T> 요소를 지정된 인덱스에 삽입합니다.

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

매개 변수

index
Int32

새 요소를 삽입해야 하는 인덱스(0부터 시작)입니다.

collection
IEnumerable<T>

요소를 에 삽입해야 하는 컬렉션입니다 List<T>. 컬렉션 자체는 사용할 null수 없지만 형식이 null참조 형식인 경우 T 해당 요소를 포함할 수 있습니다.

예외

collectionnull입니다.

index 가 0보다 작습니다.

-또는-

indexCount보다 큽니다.

예제

다음 예제에서는 범위에서 InsertRange 작동하는 클래스의 List<T> 메서드 및 기타 다양한 메서드를 보여 줍니다. 목록을 만들고 여러 평화로운 식물 먹는 공룡의 이름으로 채워진 후, InsertRange 방법은 인덱스 위치 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

설명

List<T>null 참조 형식에 유효한 값으로 허용되며 중복 요소를 허용합니다.

Count 요소(컬렉션의 현재 Count 및 크기)가 보다 Capacity크면 새 요소를 수용하도록 내부 배열을 자동으로 다시 할당하여 용량 List<T> 이 증가하고 새 요소가 추가되기 전에 기존 요소가 새 배열에 복사됩니다.

Count으면 index 요소가 의 List<T>끝에 추가됩니다.

컬렉션에 있는 요소의 순서는 에 List<T>유지됩니다.

이 메서드는 O(n * m) 작업입니다. 여기서 n 은 추가할 요소의 수이고 m 은 .입니다 Count.

적용 대상

추가 정보