Collection Osztály

Definíció

A Visual Basic Collection egy rendezett elemkészlet, amelyet egységnek nevezhetünk.

public ref class Collection sealed : System::Collections::IList
public ref class Collection sealed : System::Collections::IList, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public sealed class Collection : System.Collections.IList
[System.Serializable]
public sealed class Collection : System.Collections.IList, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type Collection = class
    interface ICollection
    interface IList
[<System.Serializable>]
type Collection = class
    interface ICollection
    interface IList
    interface ISerializable
    interface IDeserializationCallback
Public NotInheritable Class Collection
Implements IList
Public NotInheritable Class Collection
Implements IDeserializationCallback, IList, ISerializable
Öröklődés
Collection
Attribútumok
Megvalósítás

Példák

Az alábbi példa létrehozza az Collection objektumot names és egy párbeszédpanelt, amellyel a felhasználó hozzáadhat objektumokat (neveket) a gyűjteményhez. Ezután megjeleníti a gyűjteményben lévő neveket, és végül kiüríti a gyűjteményt anélkül Collection , hogy az objektumot eltitkolta volna.

Ennek működéséhez válassza a Osztály parancsot a Project menüből, és deklaráljon egy instanceName nevű nyilvános változót a nameClass modulszintjén (írja be a Public instanceName) nevű nyilvános változót az egyes példányok nevének tárolásához. Hagyja meg az alapértelmezett nevet a következőként nameClass: . Másolja és illessze be a következő kódot egy másik modul Általános szakaszába, majd kezdje el az utasítással classNamer egy másik eljárásban. (Ez a példa csak az osztályokat támogató gazdagépalkalmazásokkal működik.)

Public Class nameClass
    Public instanceName As String
End Class
Sub classNamer()
    ' Create a Visual Basic Collection object.
    Dim names As New Microsoft.VisualBasic.Collection()
    Dim key As Integer
    Dim msg As String
    Dim name As String
    Dim nameList As String = ""
    ' 1. Get names from the user to add to the collection.
    Do
        Dim inst As New nameClass()
        key += 1
        msg = "Please enter a name for this object." & vbCrLf &
              "Press Cancel to see names in collection."
        name = InputBox(msg, "Name the Collection items")
        inst.instanceName = name
        ' If user entered a name, add it to the collection.
        If inst.instanceName <> "" Then
            names.Add(inst, CStr(key))
        End If
    Loop Until name = ""
    ' 2. Create and display a list of names from the collection.
    For Each oneInst As nameClass In names
        nameList &= oneInst.instanceName & vbCrLf
    Next oneInst
    MsgBox(nameList, , "Instance Names in names Collection")
    ' 3. Remove elements from the collection without disposing of the collection.
    For count As Integer = 1 To names.Count
        names.Remove(1)
        ' Since Visual Basic collections are reindexed automatically, 
        ' remove the first member on each iteration.
    Next count
End Sub

Megjegyzések

Megjegyzés:

Amikor csak lehetséges, az általános gyűjteményeket a System.Collections.Generic névtérben vagy a System.Collections.Concurrent névtérben kell használnia a Visual Basic Collection helyett. További információ: Collections – C# vagy Collections – Visual Basic.

A Visual Basic Collection objektum kényelmesen hivatkozhat egy kapcsolódó elemcsoportra egyetlen objektumként. A gyűjtemény elemeit vagy elemeit csak az a tény kapcsolhatja össze, hogy a gyűjteményben léteznek. A gyűjtemény elemeinek nem kell ugyanazt az adattípust használniuk.

A gyűjteményeket ugyanúgy hozhatja létre, mint más objektumokat, ahogy az alábbi példa szemlélteti.

Dim coll As New Microsoft.VisualBasic.Collection()

Miután létrehozott egy gyűjteményt, az alábbiak bármelyikét elvégezheti:

  • Adjon hozzá egy elemet a Add metódushoz.

  • Távolítsa el az elemet a Remove metódussal.

  • Távolítsa el az összes elemet a Clear metódussal.

  • Megtudhatja, hogy a gyűjtemény hány elemet tartalmaz a Count tulajdonsággal.

  • Ellenőrizze, hogy egy adott elem szerepel-e a Contains metódusban.

  • Adjon vissza egy adott elemet a gyűjteményből a Item[] tulajdonsággal együtt.

  • Iterálja végig a teljes gyűjteményt a For Each... Következő utasítás.

    Megjegyzés:

    Bár a Visual Basic Collection objektum a 6.0 Visual Basic Collection objektumával azonos funkcionalitással rendelkezik, a kettő nem tud együttműködni COM-környezetben.

    Caution

    A Visual Basic Collection iterálás nem szálbiztos eljárás. Még ha a gyűjtemény szinkronizálva is van, más szálak továbbra is 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árolja a gyűjteményt, vagy elkapja a más szálak által végrehajtott módosításokból eredő kivételeket. A programozási elemek zárolásáról további információt a SyncLock utasításban talál.

Konstruktorok

Name Description
Collection()

Létrehoz és visszaad egy új Visual Basic Collection objektumot.

Tulajdonságok

Name Description
Count

Lekéri a gyűjtemény elemeinek számát.

Item[Int32]

Egy objektum adott elemét Collection lekéri pozíció vagy kulcs alapján.

Item[Object]

Egy objektum adott elemét Collection lekéri pozíció vagy kulcs alapján.

Item[String]

Egy objektum adott elemét Collection lekéri pozíció vagy kulcs alapján.

Metódusok

Name Description
Add(Object, String, Object, Object)

Elemet ad hozzá egy Collection objektumhoz.

Clear()

Törli a Visual Basic Collection objektum összes elemét.

Contains(String)

Olyan értéket ad vissza, amely jelzi, hogy egy Visual Basic Collection objektum tartalmaz-e egy adott kulccsal rendelkező elemet.

Equals(Object)

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

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

Egy enumerátort ad vissza, amely a gyűjteményen keresztül iterál.

GetHashCode()

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

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

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

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

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

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

Eltávolít egy elemet egy Collection objektumból.

Remove(String)

Eltávolít egy elemet egy Collection objektumból.

ToString()

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

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

Explicit interfész-implementációk

Name Description
ICollection.CopyTo(Array, Int32)

Az elemeket Collection egy adott indextől kezdve másolja Arrayegy adott Array indexbe.

ICollection.Count

Lekéri a gyűjtemény elemeinek számát.

ICollection.IsSynchronized

Olyan értéket kap, amely jelzi, hogy az Collection objektumhoz való hozzáférés szinkronizálva van-e (szálbiztos).

ICollection.SyncRoot

Lekéri az objektumhoz való hozzáférés Collection szinkronizálására használható objektumot.

IDeserializationCallback.OnDeserialization(Object)

A teljes Collection objektumdiagram deszerializálása után fut.

IEnumerable.GetEnumerator()

Lekéri a gyűjteményen át iteráló enumerátort.

IList.Add(Object)

Hozzáad egy elemet a gyűjteményhez.

IList.Clear()

Eltávolítja az összes elemet az Collection objektumból.

IList.Contains(Object)

Meghatározza, hogy az Collection objektum tartalmaz-e egy adott értéket.

IList.IndexOf(Object)

Meghatározza az objektum egy adott elemének indexét Collection .

IList.Insert(Int32, Object)

Elemet szúr be az Collection objektumba a megadott indexen.

IList.IsFixedSize

Olyan értéket kap, amely jelzi, hogy az Collection objektum rögzített méretű-e.

IList.IsReadOnly

Olyan értéket kap, amely jelzi, hogy az Collection objektum valóban az-e.

IList.Item[Int32]

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

IList.Remove(Object)

Eltávolítja egy adott objektum első előfordulását az Collection objektumból.

IList.RemoveAt(Int32)

Eltávolítja az Collection objektumelemet a megadott indexből.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Az objektum szerializálásához Collection szükséges adatokat adja vissza.

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: