Collection Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Visual Basic Collection
je uspořádaná sada položek, které lze označovat jako jednotku.
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 IEnumerable
interface IList
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
- Dědičnost
-
Collection
- Atributy
- Implementuje
Příklady
Následující příklad vytvoří Collection
objekt names
a dialogové okno, pomocí kterého může uživatel přidat objekty (názvy) do kolekce. Potom zobrazí názvy v kolekci a nakonec kolekci vyprázdní bez odstranění samotného objektu Collection
.
Pokud chcete zjistit, jak to funguje, zvolte příkaz Přidat třídu z nabídky Projekt a deklarujte veřejnou proměnnou s názvem instanceName
na úrovni nameClass
modulu (typ Public instanceName
), která bude obsahovat názvy jednotlivých instancí. Ponechte výchozí název na nameClass
. Zkopírujte a vložte následující kód do části Obecné v jiném modulu a pak ho spusťte příkazem classNamer
v jiné proceduře. (Tento příklad funguje pouze s hostitelskými aplikacemi, které podporují třídy.)
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
Poznámky
Poznámka
Pokud je to možné, měli byste místo jazyka Visual Basic Collection
použít obecné kolekce v System.Collections.Generic oboru názvů nebo System.Collections.Concurrent oboru názvů . Další informace najdete v tématu Kolekce – C# nebo Kolekce – Visual Basic.
Objekt jazyka Visual Basic Collection
poskytuje pohodlný způsob, jak odkazovat na související skupinu položek jako jeden objekt. Položky nebo prvky v kolekci musí být spojené pouze tím, že v kolekci existují. Prvky kolekce nemusí sdílet stejný datový typ.
Kolekci můžete vytvořit stejným způsobem jako jiné objekty, jak ukazuje následující příklad.
Dim coll As New Microsoft.VisualBasic.Collection()
Po vytvoření kolekce můžete udělat některou z těchto věcí:
Přidejte element pomocí Add metody .
Odeberte prvek pomocí Remove metody .
Odeberte všechny prvky pomocí Clear metody .
Zjistěte, kolik prvků kolekce obsahuje s Count vlastností .
Zkontrolujte, jestli je v Contains metodě přítomen konkrétní prvek.
Vrátí konkrétní prvek z kolekce s Item[] vlastností .
Iterujte celou kolekcí pomocí funkce For Each... Next – příkaz.
Poznámka
Přestože objekt Jazyk Visual Basic
Collection
má funkce identické s objektemCollection
v jazyce Visual Basic 6.0, tyto dva nemohou spolupracovat v prostředí COM.Upozornění
Iterace v jazyce Visual Basic
Collection
není procedura bezpečná pro přístup z více vláken. I když je kolekce synchronizována, ostatní vlákna mohou stále upravovat kolekci, což způsobí, že enumerátor vyvolá výjimku. Chcete-li zajistit bezpečnost vláken během výčtu, zamkněte kolekci nebo zachyťte výjimky vyplývající ze změn provedených jinými vlákny. Další informace o uzamčení programovacího prvku najdete v tématu Příkaz SyncLock.
Konstruktory
Collection() |
Vytvoří a vrátí nový objekt jazyka Visual Basic Collection . |
Vlastnosti
Count |
Získá počet prvků v kolekci. |
Item[Int32] |
Získá konkrétní prvek objektu |
Item[Object] |
Získá konkrétní prvek objektu |
Item[String] |
Získá konkrétní prvek objektu |
Metody
Add(Object, String, Object, Object) |
Přidá prvek do objektu |
Clear() |
Odstraní všechny prvky objektu jazyka Visual Basic |
Contains(String) |
Vrátí hodnotu, která označuje, zda objekt jazyka Visual Basic |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetEnumerator() |
Získá enumerátor, který provádí iteraci v kolekci. |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
Remove(Int32) |
Odebere prvek z objektu |
Remove(String) |
Odebere prvek z objektu |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
ICollection.CopyTo(Array, Int32) |
Zkopíruje prvky objektu CollectionArraydo , počínaje konkrétním Array indexem. |
ICollection.Count |
Získá počet položek v této kolekci. |
ICollection.IsSynchronized |
Získá hodnotu, která označuje, zda přístup k objektu Collection je synchronizován (bezpečné pro přístup z více vláken). |
ICollection.SyncRoot |
Získá objekt, který lze použít k synchronizaci přístupu k objektu Collection . |
IDeserializationCallback.OnDeserialization(Object) |
Spustí se po deserializaci celého Collection grafu objektu. |
IEnumerable.GetEnumerator() |
Získá enumerátor, který iteruje kolekci. |
IList.Add(Object) |
Přidá položku do kolekce. |
IList.Clear() |
Odebere z objektu Collection všechny položky. |
IList.Contains(Object) |
Určuje, zda Collection objekt obsahuje konkrétní hodnotu. |
IList.IndexOf(Object) |
Určuje index konkrétní položky v objektu Collection . |
IList.Insert(Int32, Object) |
Vloží položku do objektu Collection v zadaném indexu. |
IList.IsFixedSize |
Získá hodnotu, která označuje, zda Collection objekt má pevnou velikost. |
IList.IsReadOnly |
Získá hodnotu, která označuje, zda Collection objekt je. |
IList.Item[Int32] |
Získá nebo nastaví prvek u zadaného indexu. |
IList.Remove(Object) |
Odebere z objektu první výskyt konkrétního objektu Collection . |
IList.RemoveAt(Int32) |
Odebere položku objektu Collection v zadaném indexu. |
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Vrátí data potřebná k serializaci objektu Collection . |
Metody rozšíření
Cast<TResult>(IEnumerable) |
Přetypuje prvky objektu na IEnumerable zadaný typ. |
OfType<TResult>(IEnumerable) |
Filtruje prvky objektu IEnumerable na základě zadaného typu. |
AsParallel(IEnumerable) |
Umožňuje paralelizaci dotazu. |
AsQueryable(IEnumerable) |
Převede objekt na IEnumerableIQueryable. |