List コンストラクタ
オーバーロードの一覧
名前 | 説明 |
---|---|
List () | 空で、既定の初期量を備えた、List クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
List (ジェネリック IEnumerable) | 指定したコレクションからコピーした要素を格納し、コピーされる要素の数を格納できるだけの容量を備えた、List クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
List (Int32) | 空で、指定した初期量を備えた、List クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
List コンストラクタ (Int32)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
例外
解説
List の容量は、List が保持できる要素数になります。List に要素を追加すると、必要に応じて、内部の配列の再割り当てによって容量が自動的に増加します。
コレクションのサイズを推定できる場合は、初期量を指定すると、List に要素を追加するときに、サイズ変更操作を何度も実行する必要がなくなります。
容量を減らすには、TrimExcess メソッドを呼び出すか、Capacity プロパティを明示的に設定します。容量を減らすと、メモリの再割り当てが行われ、List 内のすべての要素がコピーされます。
List(Int32) コンストラクタのコード例を次に示します。リストの最終的なサイズはちょうど 4 になることがわかっているため、容量が 4 の文字列の List が作成されます。リストに 4 つの文字列が設定され、読み取り専用のコピーが AsReadOnly メソッドを使用して作成されます。
Imports System Imports System.Collections.Generic Public Class Example Public Shared Sub Main() Dim dinosaurs As New List(Of String)(4) Console.WriteLine(vbLf & "Capacity: {0}", dinosaurs.Capacity) dinosaurs.Add("Tyrannosaurus") dinosaurs.Add("Amargasaurus") dinosaurs.Add("Mamenchisaurus") dinosaurs.Add("Deinonychus") Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & _ "Dim roDinosaurs As IList(Of String) = dinosaurs.AsReadOnly") Dim roDinosaurs As IList(Of String) = dinosaurs.AsReadOnly Console.WriteLine(vbLf & "Elements in the read-only IList:") For Each dinosaur As String In roDinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & "dinosaurs(2) = ""Coelophysis""") dinosaurs(2) = "Coelophysis" Console.WriteLine(vbLf & "Elements in the read-only IList:") For Each dinosaur As String In roDinosaurs Console.WriteLine(dinosaur) Next End Sub End Class ' This code example produces the following output: ' 'Capacity: 4 ' 'Tyrannosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus ' 'Dim roDinosaurs As IList(Of String) = dinosaurs.AsReadOnly ' 'Elements in the read-only IList: 'Tyrannosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus ' 'dinosaurs(2) = "Coelophysis" ' 'Elements in the read-only IList: 'Tyrannosaurus 'Amargasaurus 'Coelophysis 'Deinonychus
using System; using System.Collections.Generic; public class Example { public static void Main() { List<string> dinosaurs = new List<string>(4); Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); Console.WriteLine(); foreach(string s in dinosaurs) { Console.WriteLine(s); } Console.WriteLine("\nIList<string> roDinosaurs = dinosaurs.AsReadOnly()"); IList<string> roDinosaurs = dinosaurs.AsReadOnly(); Console.WriteLine("\nElements in the read-only IList:"); foreach(string dinosaur in roDinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\ndinosaurs[2] = \"Coelophysis\""); dinosaurs[2] = "Coelophysis"; Console.WriteLine("\nElements in the read-only IList:"); foreach(string dinosaur in roDinosaurs) { Console.WriteLine(dinosaur); } } } /* This code example produces the following output: Capacity: 4 Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus IList<string> roDinosaurs = dinosaurs.AsReadOnly() Elements in the read-only IList: Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus dinosaurs[2] = "Coelophysis" Elements in the read-only IList: Tyrannosaurus Amargasaurus Coelophysis Deinonychus */
using namespace System; using namespace System::Collections::Generic; void main() { List<String^>^ dinosaurs = gcnew List<String^>(4); Console::WriteLine("\nCapacity: {0}", dinosaurs->Capacity); dinosaurs->Add("Tyrannosaurus"); dinosaurs->Add("Amargasaurus"); dinosaurs->Add("Mamenchisaurus"); dinosaurs->Add("Deinonychus"); Console::WriteLine(); for each(String^ dinosaur in dinosaurs) { Console::WriteLine(dinosaur); } Console::WriteLine("\nIList<String^>^ roDinosaurs = dinosaurs->AsReadOnly()"); IList<String^>^ roDinosaurs = dinosaurs->AsReadOnly(); Console::WriteLine("\nElements in the read-only IList:"); for each(String^ dinosaur in roDinosaurs) { Console::WriteLine(dinosaur); } Console::WriteLine("\ndinosaurs[2] = \"Coelophysis\""); dinosaurs[2] = "Coelophysis"; Console::WriteLine("\nElements in the read-only IList:"); for each(String^ dinosaur in roDinosaurs) { Console::WriteLine(dinosaur); } } /* This code example produces the following output: Capacity: 4 Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus IList<String^>^ roDinosaurs = dinosaurs->AsReadOnly() Elements in the read-only IList: Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus dinosaurs[2] = "Coelophysis" Elements in the read-only IList: Tyrannosaurus Amargasaurus Coelophysis Deinonychus */
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
List コンストラクタ (ジェネリック IEnumerable)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
Public Sub New ( _ collection As IEnumerable(Of T) _ )
Dim collection As IEnumerable(Of T) Dim instance As New List(Of T)(collection)
public List ( IEnumerable<T> collection )
public: List ( IEnumerable<T>^ collection )
public List ( IEnumerable<T> collection )
public function List ( collection : IEnumerable<T> )
例外の種類 | 条件 |
---|---|
ArgumentNullException | collection が null 参照 (Visual Basic では Nothing) です。 |
List の容量は、List が保持できる要素数になります。List に要素を追加すると、必要に応じて、内部の配列の再割り当てによって容量が自動的に増加します。
コレクションのサイズを推定できる場合は、初期量を指定すると、List に要素を追加するときに、サイズ変更操作を何度も実行する必要がなくなります。
容量を減らすには、TrimExcess メソッドを呼び出すか、Capacity プロパティを明示的に設定します。容量を減らすと、メモリの再割り当てが行われ、List 内のすべての要素がコピーされます。
要素は、コレクションの列挙子によって読み取られる順序と同じ順序で、List にコピーされます。
このコンストラクタは O(n) 操作です (n は collection 内の要素数)。
List コンストラクタと、範囲に対して動作する、List クラスの各種メソッドを使用したコード例を次に示します。文字列の配列が作成され、コンストラクタに渡されます。リストにその配列の要素が追加されます。次に Capacity プロパティが表示され、初期量が、ちょうど入力要素を格納するために必要な容量であることが示されます。
Imports System 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
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 */
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 */
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
List コンストラクタ
アセンブリ: System.Web.Mobile (system.web.mobile.dll 内)
構文
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
List コンストラクタ ()
アセンブリ: mscorlib (mscorlib.dll 内)
構文
List の容量は、List が保持できる要素数になります。List に要素を追加すると、必要に応じて、内部の配列の再割り当てによって容量が自動的に増加します。
コレクションのサイズを推定できる場合は、List(Int32) コンストラクタを使用して初期量を指定すると、List に要素を追加するときに、サイズ変更操作を何度も実行する必要がなくなります。
容量を減らすには、TrimExcess メソッドを呼び出すか、Capacity プロパティを明示的に設定します。容量を減らすと、メモリの再割り当てが行われ、List 内のすべての要素がコピーされます。
List ジェネリック クラスの既定のコンストラクタを使用したコード例を次に示します。既定のコンストラクタは、Capacity プロパティの表示で示すような、容量が 0 のリストを作成します。
コード例では、項目の追加、挿入、および削除を行い、これらのメソッドを使用したときに容量がどう変更されるかを示します。
Imports System Imports System.Collections.Generic Public Class Example Public Shared Sub Main() Dim dinosaurs As New List(Of String) Console.WriteLine(vbLf & "Capacity: {0}", dinosaurs.Capacity) dinosaurs.Add("Tyrannosaurus") dinosaurs.Add("Amargasaurus") dinosaurs.Add("Mamenchisaurus") dinosaurs.Add("Deinonychus") dinosaurs.Add("Compsognathus") Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & "Capacity: {0}", dinosaurs.Capacity) Console.WriteLine("Count: {0}", dinosaurs.Count) Console.WriteLine(vbLf & "Contains(""Deinonychus""): {0}", _ dinosaurs.Contains("Deinonychus")) Console.WriteLine(vbLf & "Insert(2, ""Compsognathus"")") dinosaurs.Insert(2, "Compsognathus") Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & "dinosaurs(3): {0}", dinosaurs(3)) Console.WriteLine(vbLf & "Remove(""Compsognathus"")") dinosaurs.Remove("Compsognathus") Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next dinosaurs.TrimExcess() Console.WriteLine(vbLf & "TrimExcess()") Console.WriteLine("Capacity: {0}", dinosaurs.Capacity) Console.WriteLine("Count: {0}", dinosaurs.Count) dinosaurs.Clear() Console.WriteLine(vbLf & "Clear()") Console.WriteLine("Capacity: {0}", dinosaurs.Capacity) Console.WriteLine("Count: {0}", dinosaurs.Count) End Sub End Class ' This code example produces the following output: ' 'Capacity: 0 ' 'Tyrannosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus 'Compsognathus ' 'Capacity: 8 'Count: 5 ' 'Contains("Deinonychus"): True ' 'Insert(2, "Compsognathus") ' 'Tyrannosaurus 'Amargasaurus 'Compsognathus 'Mamenchisaurus 'Deinonychus 'Compsognathus ' 'dinosaurs(3): Mamenchisaurus ' 'Remove("Compsognathus") ' 'Tyrannosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus 'Compsognathus ' 'TrimExcess() 'Capacity: 5 'Count: 5 ' 'Clear() 'Capacity: 5 'Count: 0
using System; using System.Collections.Generic; public class Example { public static void Main() { List<string> dinosaurs = new List<string>(); Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); Console.WriteLine("\nContains(\"Deinonychus\"): {0}" , dinosaurs.Contains("Deinonychus")); Console.WriteLine("\nInsert(2, \"Compsognathus\")"); dinosaurs.Insert(2, "Compsognathus"); Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]); Console.WriteLine("\nRemove(\"Compsognathus\")"); dinosaurs.Remove("Compsognathus"); Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } dinosaurs.TrimExcess(); Console.WriteLine("\nTrimExcess()"); Console.WriteLine("Capacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); dinosaurs.Clear(); Console.WriteLine("\nClear()"); Console.WriteLine("Capacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); } } /* This code example produces the following output: Capacity: 0 Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus Compsognathus Capacity: 8 Count: 5 Contains("Deinonychus"): True Insert(2, "Compsognathus") Tyrannosaurus Amargasaurus Compsognathus Mamenchisaurus Deinonychus Compsognathus dinosaurs[3]: Mamenchisaurus Remove("Compsognathus") Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus Compsognathus TrimExcess() Capacity: 5 Count: 5 Clear() Capacity: 5 Count: 0 */
using namespace System; using namespace System::Collections::Generic; void main() { List<String^>^ dinosaurs = gcnew List<String^>(); Console::WriteLine("\nCapacity: {0}", dinosaurs->Capacity); dinosaurs->Add("Tyrannosaurus"); dinosaurs->Add("Amargasaurus"); dinosaurs->Add("Mamenchisaurus"); dinosaurs->Add("Deinonychus"); dinosaurs->Add("Compsognathus"); Console::WriteLine(); for each(String^ dinosaur in dinosaurs ) { Console::WriteLine(dinosaur); } Console::WriteLine("\nCapacity: {0}", dinosaurs->Capacity); Console::WriteLine("Count: {0}", dinosaurs->Count); Console::WriteLine("\nContains(\"Deinonychus\"): {0}", dinosaurs->Contains("Deinonychus")); Console::WriteLine("\nInsert(2, \"Compsognathus\")"); dinosaurs->Insert(2, "Compsognathus"); Console::WriteLine(); for each(String^ dinosaur in dinosaurs ) { Console::WriteLine(dinosaur); } Console::WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]); Console::WriteLine("\nRemove(\"Compsognathus\")"); dinosaurs->Remove("Compsognathus"); Console::WriteLine(); for each(String^ dinosaur in dinosaurs ) { Console::WriteLine(dinosaur); } dinosaurs->TrimExcess(); Console::WriteLine("\nTrimExcess()"); Console::WriteLine("Capacity: {0}", dinosaurs->Capacity); Console::WriteLine("Count: {0}", dinosaurs->Count); dinosaurs->Clear(); Console::WriteLine("\nClear()"); Console::WriteLine("Capacity: {0}", dinosaurs->Capacity); Console::WriteLine("Count: {0}", dinosaurs->Count); } /* This code example produces the following output: Capacity: 0 Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus Compsognathus Capacity: 8 Count: 5 Contains("Deinonychus"): True Insert(2, "Compsognathus") Tyrannosaurus Amargasaurus Compsognathus Mamenchisaurus Deinonychus Compsognathus dinosaurs[3]: Mamenchisaurus Remove("Compsognathus") Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus Compsognathus TrimExcess() Capacity: 5 Count: 5 Clear() Capacity: 5 Count: 0 */
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- List コンストラクタのページへのリンク