ArrayList Osztály

Definíció

Az illesztőt IList egy olyan tömb használatával valósítja meg, amelynek mérete igény szerint dinamikusan növekszik.

public ref class ArrayList : System::Collections::IList
public ref class ArrayList : ICloneable, System::Collections::IList
public class ArrayList : System.Collections.IList
public class ArrayList : ICloneable, 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
type ArrayList = class
    interface IEnumerable
    interface IList
    interface ICollection
type ArrayList = class
    interface ICollection
    interface IEnumerable
    interface IList
    interface ICloneable
type ArrayList = class
    interface IEnumerable
    interface IList
    interface ICollection
    interface ICloneable
[<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
Public Class ArrayList
Implements IList
Public Class ArrayList
Implements ICloneable, IList
Öröklődés
ArrayList
Származtatott
Attribútumok
Megvalósítás

Példák

Az alábbi példa bemutatja, hogyan hozhat létre és inicializálhat egy objektumot ArrayList , és hogyan jelenítheti meg az értékeit.

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   !

Megjegyzések

Important

Nem javasoljuk, hogy az osztályt ArrayList új fejlesztéshez használja. Ehelyett azt javasoljuk, hogy az általános List<T> osztályt használja. Az ArrayList osztály célja, hogy heterogén objektumgyűjteményeket tároljon. Azonban nem mindig nyújt a legjobb teljesítményt. Ehelyett a következőket javasoljuk:

  • Heterogén objektumgyűjtemény esetén használja a List<Object> (C#-ban) vagy List(Of Object) (Visual Basic) típust.
  • Az objektumok homogén gyűjteményéhez használja az osztályt List<T> . Az osztályok relatív teljesítményével kapcsolatos vitafórumot a referenciatéma List<T> című témakörben tekinti meg. A Nem általános gyűjtemények nem használhatók a GitHub a nem általános gyűjteménytípusok helyett a generikus gyűjtemények használatáról.

A ArrayList nincs garantálva, hogy rendezett legyen. A rendezést úgy kell elvégeznie, hogy meghívja annak ArrayList metódusát Sort a rendezést igénylő BinarySearch műveletek (például ArrayList) végrehajtása előtt. Az új elemek hozzáadásakor automatikusan rendezett gyűjtemény fenntartásához használhatja az osztályt SortedSet<T> .

Egy adott ArrayList elem kapacitása a visszatartható elemek ArrayList száma. Az elemek egy ArrayListadott elemhez való hozzáadásakor a kapacitás a szükséges módon automatikusan növekszik az újraelosztással. A kapacitás csökkenthető hívással TrimToSize vagy a Capacity tulajdonság explicit beállításával.

csak .NET-keretrendszer: Nagyon nagy objektumok esetén a maximális kapacitást 2 milliárd elemre növelheti egy 64 bites rendszeren, ha a < konfigurációs elem attribútumát -ra állítja a futásidejű környezetben.

A gyűjtemény elemei egész számindex használatával érhetők el. A gyűjtemény indexei nulla alapúak.

A ArrayList gyűjtemény érvényes értékként fogad el null . Az ismétlődő elemeket is lehetővé teszi.

A gyűjtemény elemeiként ArrayList többdimenziós tömbök használata nem támogatott.

Konstruktorok

Name Description
ArrayList()

Inicializálja az ArrayList üres osztály új példányát, és az alapértelmezett kezdeti kapacitással rendelkezik.

ArrayList(ICollection)

Inicializálja az ArrayList osztály új példányát, amely a megadott gyűjteményből másolt elemeket tartalmaz, és amelynek kezdeti kapacitása megegyezik a másolt elemek számával.

ArrayList(Int32)

Inicializálja az ArrayList üres és a megadott kezdeti kapacitással rendelkező osztály új példányát.

Tulajdonságok

Name Description
Capacity

Lekéri vagy beállítja a tartalmazható elemek ArrayList számát.

Count

Lekéri a ténylegesen tartalmazott elemek számát a ArrayList.

IsFixedSize

Egy értéket kap, amely jelzi, hogy a ArrayList méret rögzített-e.

IsReadOnly

Beolvas egy értéket, amely jelzi, hogy az ArrayList írásvédett-e.

IsSynchronized

Beolvas egy értéket, amely jelzi, hogy a ArrayList hozzáférés szinkronizálva van-e (a szál biztonságos).

Item[Int32]

Lekéri vagy beállítja az elemet a megadott indexen.

SyncRoot

Lekéri az objektumot, amely a hozzáférés szinkronizálására használható.ArrayList

Metódusok

Name Description
Adapter(IList)

Burkolót ArrayList hoz létre egy adott IList.

Add(Object)

Objektumot ad hozzá a ArrayListvégéhez.

AddRange(ICollection)

Hozzáadja egy elem elemeit ICollection a ArrayListvégéhez.

BinarySearch(Int32, Int32, Object, IComparer)

A megadott összehasonlító használatával keres egy elem sorba rendezett ArrayList elemtartományát, és visszaadja az elem nulla alapú indexét.

BinarySearch(Object, IComparer)

A megadott összehasonlító használatával a teljes rendezésben ArrayList keres egy elemet, és visszaadja az elem nulla alapú indexét.

BinarySearch(Object)

Az elem teljes rendezése ArrayList az alapértelmezett összehasonlító használatával történik, és az elem nulla alapú indexét adja vissza.

Clear()

Eltávolítja az összes elemet a ArrayList.

Clone()

Létrehoz egy sekély másolatot a ArrayList.

Contains(Object)

Meghatározza, hogy egy elem szerepel-e a ArrayList.

CopyTo(Array, Int32)

A teljes ArrayList példányt egy kompatibilis egydimenziósra Arraymásolja a céltömb megadott indexétől kezdve.

CopyTo(Array)

A teljes ArrayList példányt egy kompatibilis egydimenziósra Arraymásolja a céltömb elejétől kezdve.

CopyTo(Int32, Array, Int32, Int32)

Az elemek ArrayList tartományát a céltömb megadott indexétől kezdve egy kompatibilis egydimenziósra Arraymásolja.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
FixedSize(ArrayList)

Rögzített méretű burkolót ad ArrayList vissza.

FixedSize(IList)

Rögzített méretű burkolót ad IList vissza.

GetEnumerator()

A teljes ArrayListenumerátort adja eredményül.

GetEnumerator(Int32, Int32)

Enumerátort ad vissza a ArrayList.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetRange(Int32, Int32)

Olyan értéket ArrayList ad vissza, amely a forrás ArrayListelemeinek egy részét jelöli.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IndexOf(Object, Int32, Int32)

Megkeresi a megadott Object értéket, és visszaadja az első előfordulás nullaalapú indexét a megadott indexnél kezdődő elemek ArrayList tartományán belül, és a megadott számú elemet tartalmazza.

IndexOf(Object, Int32)

Megkeresi a megadott Object értéket, és az első előfordulás nulla alapú indexét adja vissza a megadott indextől az utolsó elemig terjedő elemek tartományán ArrayList belül.

IndexOf(Object)

Megkeresi a megadott Object értéket, és a teljes első ArrayListelőfordulás nulla alapú indexét adja vissza.

Insert(Int32, Object)

Elemet szúr be a ArrayList megadott indexbe.

InsertRange(Int32, ICollection)

Beszúrja a gyűjtemény elemeit a ArrayList megadott indexbe.

LastIndexOf(Object, Int32, Int32)

Megkeresi a megadott Object értéket, és visszaadja az utolsó előfordulás nulla alapú indexét azon elemek tartományán belül, amelyek a ArrayList megadott számú elemet tartalmazzák, és a megadott indexben végződnek.

LastIndexOf(Object, Int32)

Megkeresi a megadott Object értéket, és visszaadja az utolsó előfordulás nullaalapú indexét az elemek tartományán belül, amely az ArrayList első elemtől a megadott indexig terjed.

LastIndexOf(Object)

Megkeresi a megadott Object értéket, és a teljes utolsó ArrayListelőfordulás nulla alapú indexét adja vissza.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ReadOnly(ArrayList)

Írásvédett ArrayList burkolót ad vissza.

ReadOnly(IList)

Írásvédett IList burkolót ad vissza.

Remove(Object)

Eltávolítja egy adott objektum első előfordulását a ArrayList.

RemoveAt(Int32)

Eltávolítja az elemet a megadott indexben.ArrayList

RemoveRange(Int32, Int32)

Eltávolít egy elemtartományt a ArrayList.

Repeat(Object, Int32)

Egy olyan értéket ad ArrayList vissza, amelynek elemei a megadott érték másolatai.

Reverse()

Az elemek sorrendjének megfordítása az egészben ArrayList.

Reverse(Int32, Int32)

Megfordítja a megadott tartomány elemeinek sorrendjét.

SetRange(Int32, ICollection)

A gyűjtemény elemeit a gyűjtemény elemeinek egy tartományán átmásolja a ArrayList.

Sort()

Rendezi az elemeket az egészben ArrayList.

Sort(IComparer)

A megadott összehasonlító használatával rendezi az elemeket az egészben ArrayList .

Sort(Int32, Int32, IComparer)

Rendezi az elemeket egy elemtartományban ArrayList a megadott összehasonlító használatával.

Synchronized(ArrayList)

Szinkronizált ArrayList burkolót ad vissza (szálbiztos).

Synchronized(IList)

Szinkronizált IList burkolót ad vissza (szálbiztos).

ToArray()

A tömb elemeit ArrayList átmásolja egy új Object tömbbe.

ToArray(Type)

A megadott elemtípus egy új tömbjének ArrayList elemeit másolja át.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
TrimToSize()

A kapacitást a tényleges számú elemre állítja be a ArrayList.

Bővítő metódusok

Name Description
AsParallel(IEnumerable)

Lehetővé teszi a lekérdezés párhuzamosítását.

AsQueryable(IEnumerable)

Átalakítja az egyiket IEnumerableIQueryable.

Cast<TResult>(IEnumerable)

Egy elem elemeit IEnumerable a megadott típusra veti.

OfType<TResult>(IEnumerable)

Egy adott típus alapján szűri IEnumerable egy adott elem elemeit.

A következőre érvényes:

Szálbiztonság

A nyilvános statikus (Shared Visual Basic) ilyen típusú tagjai szálbiztosak. A példánytagok nem garantáltan szálbiztosak.

A ArrayList gyűjtemény egyidejűleg több olvasót is támogathat, feltéve, hogy a gyűjtemény nem módosul. A menetbiztonság garantálása ArrayListérdekében minden műveletet a metódus által Synchronized(IList) visszaadott burkolón keresztül kell elvégezni.

A gyűjteményen keresztüli számbavétel alapvetően nem szálbiztos eljárás. A gyűjtemény szinkronizálása esetén is más szálak módosíthatják a gyűjteményt, ami miatt az enumerátor kivételt okoz. Az enumerálás során a szálbiztonság garantálása érdekében zárolhatja a gyűjteményt a teljes enumerálás során, vagy elkaphatja a más szálak által végrehajtott módosításokból eredő kivételeket.

Lásd még