List<T>.InsertRange(Int32, IEnumerable<T>) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
일 수는 없지만 T
형식이 참조 형식인 경우 null
인 요소를 포함할 수 있습니다.
예외
collection
이(가) null
인 경우
예제
다음 예제에서는 InsertRange 메서드 및 범위에 작동 하는 클래스의 List<T> 다양 한 다른 메서드를 보여 줍니다. 목록이 만들어지고 여러 평화로운 식물 먹는 공룡의 이름으로 채워진 후, InsertRange 방법은 인덱스 위치 3에서 시작하여 목록에 세 개의 사나운 고기 먹는 공룡의 배열을 삽입하는 데 사용됩니다.
using namespace System;
using namespace System::Collections::Generic;
void main()
{
array<String^>^ input = { "Brachiosaurus",
"Amargasaurus",
"Mamenchisaurus" };
List<String^>^ dinosaurs =
gcnew List<String^>((IEnumerable<String^>^) input);
Console::WriteLine("\nCapacity: {0}", dinosaurs->Capacity);
Console::WriteLine();
for each(String^ dinosaur in dinosaurs )
{
Console::WriteLine(dinosaur);
}
Console::WriteLine("\nAddRange(dinosaurs)");
dinosaurs->AddRange(dinosaurs);
Console::WriteLine();
for each(String^ dinosaur in dinosaurs )
{
Console::WriteLine(dinosaur);
}
Console::WriteLine("\nRemoveRange(2, 2)");
dinosaurs->RemoveRange(2, 2);
Console::WriteLine();
for each(String^ dinosaur in dinosaurs )
{
Console::WriteLine(dinosaur);
}
input = gcnew array<String^> { "Tyrannosaurus",
"Deinonychus",
"Velociraptor"};
Console::WriteLine("\nInsertRange(3, (IEnumerable<String^>^) input)");
dinosaurs->InsertRange(3, (IEnumerable<String^>^) input);
Console::WriteLine();
for each(String^ dinosaur in dinosaurs )
{
Console::WriteLine(dinosaur);
}
Console::WriteLine("\noutput = dinosaurs->GetRange(2, 3)->ToArray()");
array<String^>^ output = dinosaurs->GetRange(2, 3)->ToArray();
Console::WriteLine();
for each(String^ dinosaur in output )
{
Console::WriteLine(dinosaur);
}
}
/* This code example produces the following output:
Capacity: 3
Brachiosaurus
Amargasaurus
Mamenchisaurus
AddRange(dinosaurs)
Brachiosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Amargasaurus
Mamenchisaurus
RemoveRange(2, 2)
Brachiosaurus
Amargasaurus
Amargasaurus
Mamenchisaurus
InsertRange(3, (IEnumerable<String^>^) input)
Brachiosaurus
Amargasaurus
Amargasaurus
Tyrannosaurus
Deinonychus
Velociraptor
Mamenchisaurus
output = dinosaurs->GetRange(2, 3)->ToArray()
Amargasaurus
Tyrannosaurus
Deinonychus
*/
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
string[] input = { "Brachiosaurus",
"Amargasaurus",
"Mamenchisaurus" };
List<string> dinosaurs = new List<string>(input);
Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
Console.WriteLine();
foreach( string dinosaur in dinosaurs )
{
Console.WriteLine(dinosaur);
}
Console.WriteLine("\nAddRange(dinosaurs)");
dinosaurs.AddRange(dinosaurs);
Console.WriteLine();
foreach( string dinosaur in dinosaurs )
{
Console.WriteLine(dinosaur);
}
Console.WriteLine("\nRemoveRange(2, 2)");
dinosaurs.RemoveRange(2, 2);
Console.WriteLine();
foreach( string dinosaur in dinosaurs )
{
Console.WriteLine(dinosaur);
}
input = new string[] { "Tyrannosaurus",
"Deinonychus",
"Velociraptor"};
Console.WriteLine("\nInsertRange(3, input)");
dinosaurs.InsertRange(3, input);
Console.WriteLine();
foreach( string dinosaur in dinosaurs )
{
Console.WriteLine(dinosaur);
}
Console.WriteLine("\noutput = dinosaurs.GetRange(2, 3).ToArray()");
string[] output = dinosaurs.GetRange(2, 3).ToArray();
Console.WriteLine();
foreach( string dinosaur in output )
{
Console.WriteLine(dinosaur);
}
}
}
/* This code example produces the following output:
Capacity: 3
Brachiosaurus
Amargasaurus
Mamenchisaurus
AddRange(dinosaurs)
Brachiosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Amargasaurus
Mamenchisaurus
RemoveRange(2, 2)
Brachiosaurus
Amargasaurus
Amargasaurus
Mamenchisaurus
InsertRange(3, input)
Brachiosaurus
Amargasaurus
Amargasaurus
Tyrannosaurus
Deinonychus
Velociraptor
Mamenchisaurus
output = dinosaurs.GetRange(2, 3).ToArray()
Amargasaurus
Tyrannosaurus
Deinonychus
*/
Imports System.Collections.Generic
Public Class Example
Public Shared Sub Main()
Dim input() As String = { "Brachiosaurus", _
"Amargasaurus", _
"Mamenchisaurus" }
Dim dinosaurs As New List(Of String)(input)
Console.WriteLine(vbLf & "Capacity: {0}", dinosaurs.Capacity)
Console.WriteLine()
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
Next
Console.WriteLine(vbLf & "AddRange(dinosaurs)")
dinosaurs.AddRange(dinosaurs)
Console.WriteLine()
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
Next
Console.WriteLine(vbLf & "RemoveRange(2, 2)")
dinosaurs.RemoveRange(2, 2)
Console.WriteLine()
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
Next
input = New String() { "Tyrannosaurus", _
"Deinonychus", _
"Velociraptor" }
Console.WriteLine(vbLf & "InsertRange(3, input)")
dinosaurs.InsertRange(3, input)
Console.WriteLine()
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
Next
Console.WriteLine(vbLf & "output = dinosaurs.GetRange(2, 3).ToArray")
Dim output() As String = dinosaurs.GetRange(2, 3).ToArray()
Console.WriteLine()
For Each dinosaur As String In output
Console.WriteLine(dinosaur)
Next
End Sub
End Class
' This code example produces the following output:
'
'Capacity: 3
'
'Brachiosaurus
'Amargasaurus
'Mamenchisaurus
'
'AddRange(dinosaurs)
'
'Brachiosaurus
'Amargasaurus
'Mamenchisaurus
'Brachiosaurus
'Amargasaurus
'Mamenchisaurus
'
'RemoveRange(2, 2)
'
'Brachiosaurus
'Amargasaurus
'Amargasaurus
'Mamenchisaurus
'
'InsertRange(3, input)
'
'Brachiosaurus
'Amargasaurus
'Amargasaurus
'Tyrannosaurus
'Deinonychus
'Velociraptor
'Mamenchisaurus
'
'output = dinosaurs.GetRange(2, 3).ToArray
'
'Amargasaurus
'Tyrannosaurus
'Deinonychus
설명
List<T> 는 null
참조 형식에 유효한 값으로 허용되고 중복 요소를 허용합니다.
새 Count (컬렉션의 현재 Count 더하기 크기)가 보다 Capacity크면 새 요소를 수용하도록 내부 배열을 자동으로 재할당하여 의 List<T> 용량이 증가하고 새 요소가 추가되기 전에 기존 요소가 새 배열에 복사됩니다.
가 과 같Count으면 index
요소가 의 List<T>끝에 추가됩니다.
컬렉션의 요소 순서는 에 List<T>유지됩니다.
이 메서드는 O(n * m) 작업입니다. 여기서 n 은 추가할 요소의 수이고 m 은 입니다 Count.
적용 대상
추가 정보
.NET