ArrayList Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Implementerar IList gränssnittet med hjälp av en matris vars storlek ökas dynamiskt efter behov.
public ref class ArrayList : System::Collections::IList
public ref class ArrayList : ICloneable, System::Collections::IList
public class ArrayList : System.Collections.IList
[System.Serializable]
public class ArrayList : ICloneable, System.Collections.IList
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayList : ICloneable, System.Collections.IList
public class ArrayList : ICloneable, System.Collections.IList
type ArrayList = class
interface IEnumerable
interface IList
interface ICollection
[<System.Serializable>]
type ArrayList = class
interface IList
interface ICollection
interface IEnumerable
interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArrayList = class
interface IList
interface ICollection
interface IEnumerable
interface ICloneable
type ArrayList = class
interface ICollection
interface IEnumerable
interface IList
interface ICloneable
Public Class ArrayList
Implements IList
Public Class ArrayList
Implements ICloneable, IList
- Arv
-
ArrayList
- Härledda
- Attribut
- Implementeringar
Exempel
I följande exempel visas hur du skapar och initierar en ArrayList och hur du visar dess värden.
using System;
using System.Collections;
public class SamplesArrayList {
public static void Main() {
// Creates and initializes a new ArrayList.
ArrayList myAL = new ArrayList();
myAL.Add("Hello");
myAL.Add("World");
myAL.Add("!");
// Displays the properties and values of the ArrayList.
Console.WriteLine( "myAL" );
Console.WriteLine( " Count: {0}", myAL.Count );
Console.WriteLine( " Capacity: {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
}
public static void PrintValues( IEnumerable myList ) {
foreach ( Object obj in myList )
Console.Write( " {0}", obj );
Console.WriteLine();
}
}
/*
This code produces output similar to the following:
myAL
Count: 3
Capacity: 4
Values: Hello World !
*/
Imports System.Collections
Public Class SamplesArrayList
Public Shared Sub Main()
' Creates and initializes a new ArrayList.
Dim myAL As New ArrayList()
myAL.Add("Hello")
myAL.Add("World")
myAL.Add("!")
' Displays the properties and values of the ArrayList.
Console.WriteLine("myAL")
Console.WriteLine(" Count: {0}", myAL.Count)
Console.WriteLine(" Capacity: {0}", myAL.Capacity)
Console.Write(" Values:")
PrintValues(myAL)
End Sub
Public Shared Sub PrintValues(myList As IEnumerable)
Dim obj As [Object]
For Each obj In myList
Console.Write(" {0}", obj)
Next obj
Console.WriteLine()
End Sub
End Class
' This code produces output similar to the following:
'
' myAL
' Count: 3
' Capacity: 4
' Values: Hello World !
Kommentarer
Important
Vi rekommenderar inte att du använder ArrayList klassen för ny utveckling. I stället rekommenderar vi att du använder den allmänna List<T> klassen.
Klassen ArrayList är utformad för att innehålla heterogena samlingar av objekt. Det ger dock inte alltid bästa möjliga prestanda. I stället rekommenderar vi följande:
- För en heterogen samling objekt använder du typen
List<Object>(i C#) ellerList(Of Object)(i Visual Basic). - Använd klassen för en homogen samling objekt List<T> . Se Prestandaöverväganden i referensavsnittet List<T> för en diskussion om den relativa prestandan för dessa klasser. Se Non-generic samlingar bör inte användas på GitHub för allmän information om användningen av generiska i stället för icke-generiska samlingstyper.
Det finns ingen garanti för att ArrayList är sorterad. Du måste sortera ArrayList genom att anropa dess Sort metod innan du utför åtgärder (till exempel ) som BinarySearchkräver att den ArrayList sorteras. Om du vill behålla en samling som sorteras automatiskt när nya element läggs till kan du använda SortedSet<T> klassen .
Kapaciteten för en ArrayList är antalet element som ArrayList kan hållas. När element läggs till i en ArrayListökas kapaciteten automatiskt vid behov genom omfördelning. Kapaciteten kan minskas genom att anropa TrimToSize eller genom att uttryckligen ange egenskapen Capacity .
.NET Framework only: För mycket stora ArrayList objekt kan du öka den maximala kapaciteten till 2 miljarder element i ett 64-bitarssystem genom att ange attributet enabled för konfigurationselementet <gcAllowVeryLargeObjects> till true i körningsmiljön.
Element i den här samlingen kan nås med hjälp av ett heltalsindex. Index i den här samlingen är nollbaserade.
Samlingen ArrayList accepterar null som ett giltigt värde. Det tillåter också duplicerade element.
Det går inte att använda flerdimensionella matriser som element i en ArrayList samling.
Konstruktorer
| Name | Description |
|---|---|
| ArrayList() |
Initierar en ny instans av ArrayList klassen som är tom och har standardinitieringskapaciteten. |
| ArrayList(ICollection) |
Initierar en ny instans av ArrayList klassen som innehåller element som kopierats från den angivna samlingen och som har samma initiala kapacitet som antalet kopierade element. |
| ArrayList(Int32) |
Initierar en ny instans av ArrayList klassen som är tom och har den angivna initiala kapaciteten. |
Egenskaper
| Name | Description |
|---|---|
| Capacity |
Hämtar eller anger antalet element som ArrayList kan innehålla. |
| Count |
Hämtar antalet element som faktiskt finns i ArrayList. |
| IsFixedSize |
Hämtar ett värde som anger om har ArrayList en fast storlek. |
| IsReadOnly |
Hämtar ett värde som anger om är ArrayList skrivskyddat. |
| IsSynchronized |
Hämtar ett värde som anger om åtkomsten ArrayList till är synkroniserad (trådsäker). |
| Item[Int32] |
Hämtar eller anger elementet vid det angivna indexet. |
| SyncRoot |
Hämtar ett objekt som kan användas för att synkronisera åtkomsten ArrayListtill . |
Metoder
| Name | Description |
|---|---|
| Adapter(IList) | |
| Add(Object) |
Lägger till ett objekt i slutet av ArrayList. |
| AddRange(ICollection) |
Lägger till elementen i en ICollection i slutet av ArrayList. |
| BinarySearch(Int32, Int32, Object, IComparer) |
Söker igenom ett område med element i det sorterade ArrayList efter ett element med den angivna jämförelsen och returnerar elementets nollbaserade index. |
| BinarySearch(Object, IComparer) |
Söker igenom hela sorterade ArrayList efter ett element med hjälp av den angivna jämförelsen och returnerar det nollbaserade indexet för elementet. |
| BinarySearch(Object) |
Söker igenom hela sorterade ArrayList efter ett element med hjälp av standardjäxan och returnerar det nollbaserade indexet för elementet. |
| Clear() |
Tar bort alla element från ArrayList. |
| Clone() |
Skapar en ytlig kopia av ArrayList. |
| Contains(Object) |
Avgör om ett element finns i ArrayList. |
| CopyTo(Array, Int32) |
Kopierar hela ArrayList till en kompatibel endimensionell Array, med början vid det angivna indexet för målmatrisen. |
| CopyTo(Array) |
Kopierar hela ArrayList till en kompatibel endimensionell Array, från början av målmatrisen. |
| CopyTo(Int32, Array, Int32, Int32) |
Kopierar ett område med element från ArrayList till en kompatibel endimensionell Array, med början vid det angivna indexet för målmatrisen. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| FixedSize(ArrayList) |
Returnerar en ArrayList omslutning med en fast storlek. |
| FixedSize(IList) |
Returnerar en IList omslutning med en fast storlek. |
| GetEnumerator() |
Returnerar en uppräknare för hela ArrayList. |
| GetEnumerator(Int32, Int32) |
Returnerar en uppräknare för ett område med element i ArrayList. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetRange(Int32, Int32) |
Returnerar en ArrayList som representerar en delmängd av elementen i källan ArrayList. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| IndexOf(Object, Int32, Int32) |
Söker efter det angivna Object och returnerar det nollbaserade indexet för den första förekomsten inom elementintervallet ArrayList i det som börjar vid det angivna indexet och innehåller det angivna antalet element. |
| IndexOf(Object, Int32) |
Söker efter det angivna Object och returnerar det nollbaserade indexet för den första förekomsten inom elementintervallet ArrayList i som sträcker sig från det angivna indexet till det sista elementet. |
| IndexOf(Object) |
Söker efter den angivna Object och returnerar det nollbaserade indexet för den första förekomsten i hela ArrayList. |
| Insert(Int32, Object) |
Infogar ett element i ArrayList det angivna indexet. |
| InsertRange(Int32, ICollection) |
Infogar elementen i en samling i ArrayList det angivna indexet. |
| LastIndexOf(Object, Int32, Int32) |
Söker efter det angivna Object och returnerar det nollbaserade indexet för den senaste förekomsten inom elementintervallet ArrayList i som innehåller det angivna antalet element och slutar vid det angivna indexet. |
| LastIndexOf(Object, Int32) |
Söker efter det angivna Object och returnerar det nollbaserade indexet för den senaste förekomsten inom elementintervallet ArrayList i som sträcker sig från det första elementet till det angivna indexet. |
| LastIndexOf(Object) |
Söker efter det angivna Object och returnerar det nollbaserade indexet för den senaste förekomsten i hela ArrayList. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ReadOnly(ArrayList) |
Returnerar en skrivskyddad ArrayList omslutning. |
| ReadOnly(IList) |
Returnerar en skrivskyddad IList omslutning. |
| Remove(Object) |
Tar bort den första förekomsten av ett specifikt objekt från ArrayList. |
| RemoveAt(Int32) |
Tar bort elementet i det angivna indexet för ArrayList. |
| RemoveRange(Int32, Int32) |
Tar bort ett område med element från ArrayList. |
| Repeat(Object, Int32) |
Returnerar ett ArrayList vars element är kopior av det angivna värdet. |
| Reverse() |
Ändrar ordningen på elementen i hela ArrayList. |
| Reverse(Int32, Int32) |
Ändrar ordningen på elementen i det angivna intervallet. |
| SetRange(Int32, ICollection) |
Kopierar elementen i en samling över ett område med element i ArrayList. |
| Sort() |
Sorterar elementen i hela ArrayList. |
| Sort(IComparer) |
Sorterar elementen i hela ArrayList med den angivna jämförelsen. |
| Sort(Int32, Int32, IComparer) |
Sorterar elementen i ett område med element i ArrayList med hjälp av den angivna jämförelsen. |
| Synchronized(ArrayList) |
Returnerar en ArrayList omslutning som är synkroniserad (trådsäker). |
| Synchronized(IList) |
Returnerar en IList omslutning som är synkroniserad (trådsäker). |
| ToArray() | |
| ToArray(Type) |
Kopierar elementen i ArrayList till en ny matris av den angivna elementtypen. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| TrimToSize() |
Anger kapaciteten till det faktiska antalet element i ArrayList. |
Tilläggsmetoder
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Möjliggör parallellisering av en fråga. |
| AsQueryable(IEnumerable) |
Konverterar en IEnumerable till en IQueryable. |
| Cast<TResult>(IEnumerable) |
Omvandlar elementen i en IEnumerable till den angivna typen. |
| OfType<TResult>(IEnumerable) |
Filtrerar elementen i en IEnumerable baserat på en angiven typ. |
Gäller för
Trådsäkerhet
Offentliga statiska (Shared i Visual Basic) medlemmar av den här typen är trådsäkra. Vilka som helst instansmedlemmar garanteras inte att vara trådsäkra.
En ArrayList kan ha stöd för flera läsare samtidigt, så länge samlingen inte ändras. För att garantera trådsäkerheten för ArrayListmåste alla åtgärder utföras via omslutningen som returneras av Synchronized(IList) metoden.
Att räkna upp genom en samling är i sig inte en trådsäker procedur. Även när en samling synkroniseras kan andra trådar fortfarande ändra samlingen, vilket gör att uppräknaren genererar ett undantag. För att garantera trådsäkerheten under uppräkningen kan du antingen låsa samlingen under hela uppräkningen eller fånga undantagen från ändringar som gjorts av andra trådar.