List<T> Oluşturucular
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
List<T> sınıfının yeni bir örneğini başlatır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| List<T>() |
Sınıfın List<T> boş ve varsayılan başlangıç kapasitesine sahip yeni bir örneğini başlatır. |
| List<T>(IEnumerable<T>) |
Belirtilen koleksiyondan kopyalanan öğeleri içeren ve kopyalanan öğe sayısını karşılamak için yeterli kapasiteye sahip olan sınıfın yeni bir örneğini List<T> başlatır. |
| List<T>(Int32) |
Sınıfın List<T> boş ve belirtilen başlangıç kapasitesine sahip yeni bir örneğini başlatır. |
List<T>()
- Kaynak:
- List.cs
- Kaynak:
- List.cs
- Kaynak:
- List.cs
- Kaynak:
- List.cs
- Kaynak:
- List.cs
Sınıfın List<T> boş ve varsayılan başlangıç kapasitesine sahip yeni bir örneğini başlatır.
public:
List();
public List();
Public Sub New ()
Örnekler
Aşağıdaki örnek, genel sınıfın parametresiz oluşturucuyu List<T> gösterir. Parametresiz oluşturucu, özelliğini görüntüleyerek gösterildiği gibi varsayılan kapasiteye Capacity sahip bir liste oluşturur.
Örnek, bu yöntemler kullanılırken kapasitenin nasıl değiştiğini gösteren öğeleri ekler, ekler ve kaldırır.
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);
}
// Shows accessing the list using the Item property.
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
*/
Imports System.Collections.Generic
Partial Public Class Program
Public Shared Sub ShowPlanets()
Dim planets As New List(Of String)
Console.WriteLine(vbLf & "Capacity: {0}", planets.Capacity)
planets.Add("Mercury")
planets.Add("Venus")
planets.Add("Earth")
planets.Add("Mars")
planets.Add("Jupiter")
Console.WriteLine()
For Each planet As String In planets
Console.WriteLine(planet)
Next
Console.WriteLine(vbLf & "Capacity: {0}", planets.Capacity)
Console.WriteLine("Count: {0}", planets.Count)
Console.WriteLine(vbLf & "Contains(""Mars""): {0}", _
planets.Contains("Mars"))
Console.WriteLine(vbLf & "Insert(2, ""Saturn"")")
planets.Insert(2, "Saturn")
Console.WriteLine()
For Each planet As String In planets
Console.WriteLine(planet)
Next
' Shows how to access the list using the Item property.
Console.WriteLine(vbLf & "planets(3): {0}", planets(3))
Console.WriteLine(vbLf & "Remove(""Jupiter"")")
planets.Remove("Jupiter")
Console.WriteLine()
For Each planet As String In planets
Console.WriteLine(planet)
Next
planets.TrimExcess()
Console.WriteLine(vbLf & "TrimExcess()")
Console.WriteLine("Capacity: {0}", planets.Capacity)
Console.WriteLine("Count: {0}", planets.Count)
planets.Clear()
Console.WriteLine(vbLf & "Clear()")
Console.WriteLine("Capacity: {0}", planets.Capacity)
Console.WriteLine("Count: {0}", planets.Count)
End Sub
End Class
' This code example produces the following output:
'
' Capacity: 0
'
' Mercury
' Venus
' Earth
' Mars
' Jupiter
'
' Capacity: 8
' Count: 5
'
' Contains("Mars"): True
'
' Insert(2, "Saturn")
'
' Mercury
' Venus
' Saturn
' Earth
' Mars
' Jupiter
'
' planets(3): Earth
'
' Remove("Jupiter")
'
' Mercury
' Venus
' Saturn
' Earth
' Mars
'
' TrimExcess()
' Capacity: 5
' Count: 5
'
' Clear()
' Capacity: 5
' Count: 0
[<EntryPoint>]
let main argv =
// We refer to System.Collections.Generic.List<'T> by its type
// abbreviation ResizeArray<'T> to avoid conflict with the List module.
// Note: In F# code, F# linked lists are usually preferred over
// ResizeArray<'T> when an extendable collection is required.
let dinosaurs = ResizeArray<_>()
// Write out the dinosaurs in the ResizeArray.
let printDinosaurs() =
printfn ""
dinosaurs |> Seq.iter (fun p -> printfn "%O" p)
printfn "\nCapacity: %i" dinosaurs.Capacity
dinosaurs.Add("Tyrannosaurus")
dinosaurs.Add("Amargasaurus")
dinosaurs.Add("Mamenchisaurus")
dinosaurs.Add("Deinonychus")
dinosaurs.Add("Compsognathus")
printDinosaurs()
printfn "\nCapacity: %i" dinosaurs.Capacity
printfn "Count: %i" dinosaurs.Count
printfn "\nContains(\"Deinonychus\"): %b" (dinosaurs.Contains("Deinonychus"))
printfn "\nInsert(2, \"Compsognathus\")"
dinosaurs.Insert(2, "Compsognathus")
printDinosaurs()
// Shows accessing the list using the Item property.
printfn "\ndinosaurs[3]: %s" dinosaurs.[3]
printfn "\nRemove(\"Compsognathus\")"
dinosaurs.Remove("Compsognathus") |> ignore
printDinosaurs()
dinosaurs.TrimExcess()
printfn "\nTrimExcess()"
printfn "Capacity: %i" dinosaurs.Capacity
printfn "Count: %i" dinosaurs.Count
dinosaurs.Clear()
printfn "\nClear()"
printfn "Capacity: %i" dinosaurs.Capacity
printfn "Count: %i" dinosaurs.Count
0 // return an integer exit code
(* 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
*)
Açıklamalar
'nin List<T> kapasitesi, öğesinin tutabileceği öğe List<T> sayısıdır. öğesine öğeler eklendikçe List<T>, iç dizi yeniden konumlandırılarak kapasite gerektiği gibi otomatik olarak artırılır.
Koleksiyonun boyutu tahmin edilebiliyorsa oluşturucunun kullanılması ve ilk kapasitenin List<T>(Int32) belirtilmesi, öğesine öğe eklerken bir dizi yeniden boyutlandırma işlemi gerçekleştirme gereksinimini List<T>ortadan kaldırır.
Yöntemi çağrılarak TrimExcess veya özelliği açıkça ayarlanarak Capacity kapasite azaltılabilir. Kapasiteyi azaltmak, belleği yeniden ayırır ve içindeki List<T>tüm öğeleri kopyalar.
Bu oluşturucu bir O(1) işlemidir.
Şunlara uygulanır
List<T>(IEnumerable<T>)
- Kaynak:
- List.cs
- Kaynak:
- List.cs
- Kaynak:
- List.cs
- Kaynak:
- List.cs
- Kaynak:
- List.cs
Belirtilen koleksiyondan kopyalanan öğeleri içeren ve kopyalanan öğe sayısını karşılamak için yeterli kapasiteye sahip olan sınıfın yeni bir örneğini List<T> başlatır.
public:
List(System::Collections::Generic::IEnumerable<T> ^ collection);
public List(System.Collections.Generic.IEnumerable<T> collection);
new System.Collections.Generic.List<'T> : seq<'T> -> System.Collections.Generic.List<'T>
Public Sub New (collection As IEnumerable(Of T))
Parametreler
- collection
- IEnumerable<T>
Öğeleri yeni listeye kopyalanan koleksiyon.
Özel durumlar
collection, null'e eşittir.
Örnekler
Aşağıdaki örnek, oluşturucuyu List<T> ve aralıklar üzerinde hareket eden sınıfın List<T> çeşitli yöntemlerini gösterir. Bir dize dizisi oluşturulur ve oluşturucuya geçirilir ve listenin dizinin öğeleriyle doldurularak. Daha Capacity sonra giriş öğelerini tutmak için ilk kapasitenin tam olarak gerekli olduğunu göstermek için özelliği görüntülenir.
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
Açıklamalar
Öğeler, koleksiyonun numaralandırıcısı tarafından okundıkları sırayla öğesine List<T> kopyalanır.
Bu oluşturucu bir O(n) işlemidir; burada n , içindeki collectionöğelerin sayısıdır.
Ayrıca bkz.
Şunlara uygulanır
List<T>(Int32)
- Kaynak:
- List.cs
- Kaynak:
- List.cs
- Kaynak:
- List.cs
- Kaynak:
- List.cs
- Kaynak:
- List.cs
Sınıfın List<T> boş ve belirtilen başlangıç kapasitesine sahip yeni bir örneğini başlatır.
public:
List(int capacity);
public List(int capacity);
new System.Collections.Generic.List<'T> : int -> System.Collections.Generic.List<'T>
Public Sub New (capacity As Integer)
Parametreler
- capacity
- Int32
Yeni listenin başlangıçta depolayabileceğiniz öğe sayısı.
Özel durumlar
capacity 0'dan küçüktür.
Örnekler
Aşağıdaki örnekte oluşturucu gösterilmektedir List<T>(Int32) . List<T> Listenin en büyük boyutunun tam olarak 4 olduğu bilindiğinden, 4 kapasiteye sahip dizelerden biri oluşturulur. Liste dört dizeyle doldurulur ve yöntemi kullanılarak AsReadOnly salt okunur bir kopya oluşturulur.
using System;
using System.Collections.Generic;
public partial class Program
{
public static void Main()
{
List<string> animals = new List<string>(4);
Console.WriteLine("\nCapacity: {0}", animals.Capacity);
animals.Add("Cat");
animals.Add("Dog");
animals.Add("Squirrel");
animals.Add("Wolf");
Console.WriteLine();
foreach (string animal in animals)
{
Console.WriteLine(animal);
}
Console.WriteLine("\nIList<string> roAnimals = animals.AsReadOnly()");
IList<string> roAnimals = animals.AsReadOnly();
Console.WriteLine("\nElements in the read-only IList:");
foreach (string animal in roAnimals)
{
Console.WriteLine(animal);
}
Console.WriteLine("\nanimals[2] = \"Lion\"");
animals[2] = "Lion";
Console.WriteLine("\nElements in the read-only IList:");
foreach (string animal in roAnimals)
{
Console.WriteLine(animal);
}
}
}
/*
This code example produces the following output:
Capacity: 4
Cat
Dog
Squirrel
Wolf
IList<string> roAnimals = animals.AsReadOnly()
Elements in the read-only IList:
Cat
Dog
Squirrel
Wolf
animals[2] = "Lion"
Elements in the read-only IList:
Cat
Dog
Lion
Wolf
*/
Imports System.Collections.Generic
Partial Public Class Program
Public Shared Sub Main()
Dim animals As New List(Of String)(4)
Console.WriteLine(vbLf & "Capacity: {0}", animals.Capacity)
animals.Add("Cat")
animals.Add("Dog")
animals.Add("Squirrel")
animals.Add("Wolf")
Console.WriteLine()
For Each animal As String In animals
Console.WriteLine(animal)
Next
Console.WriteLine(vbLf & _
"Dim roAnimals As IList(Of String) = animals.AsReadOnly")
Dim roAnimals As IList(Of String) = animals.AsReadOnly
Console.WriteLine(vbLf & "Elements in the read-only IList:")
For Each animal As String In roAnimals
Console.WriteLine(animal)
Next
Console.WriteLine(vbLf & "animals(2) = ""Lion""")
animals(2) = "Lion"
Console.WriteLine(vbLf & "Elements in the read-only IList:")
For Each animal As String In roAnimals
Console.WriteLine(animal)
Next
End Sub
End Class
' This code example produces the following output:
'
' Capacity: 4
'
' Cat
' Dog
' Squirrel
' Wolf
'
' Dim roAnimals As IList(Of String) = animals.AsReadOnly
'
' Elements in the read-only IList:
' Cat
' Dog
' Squirrel
' Wolf
'
' animals(2) = "Lion"
'
' Elements in the read-only IList:
' Cat
' Dog
' Lion
' Wolf
Açıklamalar
'nin List<T> kapasitesi, öğesinin tutabileceği öğe List<T> sayısıdır. öğesine öğeler eklendikçe List<T>, iç dizi yeniden konumlandırılarak kapasite gerektiği gibi otomatik olarak artırılır.
Koleksiyonun boyutu tahmin edilebiliyorsa, ilk kapasitenin belirtilmesi, öğesine öğe eklerken bir dizi yeniden boyutlandırma işlemi gerçekleştirme gereksinimini List<T>ortadan kaldırır.
Yöntemi çağrılarak TrimExcess veya özelliği açıkça ayarlanarak Capacity kapasite azaltılabilir. Kapasiteyi azaltmak, belleği yeniden ayırır ve içindeki List<T>tüm öğeleri kopyalar.
Bu oluşturucu bir O(1) işlemidir.