List<T>.GetRange(Int32, Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コピー元の List<T> 内の、ある範囲の要素の簡易コピーを作成します。
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)
パラメーター
- count
- Int32
範囲内の要素の数。
戻り値
コピー元の List<T> 内の、ある範囲の要素の簡易コピー。
例外
index
および count
は List<T> において要素の有効な範囲を表していません。
例
次の例では、範囲に対して GetRange 動作する クラスの メソッドとその他の List<T> メソッドを示します。 この例の最後では、 メソッドを GetRange 使用して、インデックス位置 2 から始まる 3 つの項目をリストから取得します。 メソッドは ToArray 、結果として生成 List<T>された で呼び出され、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
注釈
参照型のコレクションの浅いコピー、またはそのコレクションのサブセットには、コレクションの要素への参照のみが含まれます。 オブジェクト自体はコピーされません。 新しいリスト内の参照は、元のリスト内の参照と同じオブジェクトを指します。
値型のコレクションの浅いコピー、またはそのコレクションのサブセットには、コレクションの要素が含まれます。 ただし、コレクションの要素に他のオブジェクトへの参照が含まれている場合、それらのオブジェクトはコピーされません。 新しいコレクションの要素内の参照は、元のコレクションの要素内の参照と同じオブジェクトを指します。
これに対し、コレクションのディープ コピーでは、要素とその要素によって直接または間接的に参照されるすべてがコピーされます。
このメソッドは O(n) 操作で、 n は です count
。
適用対象
こちらもご覧ください
.NET