ArrayList Klass

Definition

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#) eller List(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)

Skapar en ArrayList omslutning för en specifik 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()

Kopierar elementen i ArrayList till en ny Object matris.

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.

Se även