Collection Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
Collectionobjektum a 6.0 Visual BasicCollectionobjektumával azonos funkcionalitással rendelkezik, a kettő nem tud együttműködni COM-környezetben.Caution
A Visual Basic
Collectioniterá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 |
| Item[Object] |
Egy objektum adott elemét |
| Item[String] |
Egy objektum adott elemét |
Metódusok
| Name | Description |
|---|---|
| Add(Object, String, Object, Object) |
Elemet ad hozzá egy |
| Clear() |
Törli a Visual Basic |
| Contains(String) |
Olyan értéket ad vissza, amely jelzi, hogy egy Visual Basic |
| 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 |
| Remove(String) |
Eltávolít egy elemet egy |
| 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. |