Sdílet prostřednictvím


Collection Třída

Definice

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 Collectionpouží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 objektem Collection 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 Collection buď podle pozice, nebo podle klíče.

Item[Object]

Získá konkrétní prvek objektu Collection buď podle pozice, nebo podle klíče.

Item[String]

Získá konkrétní prvek objektu Collection buď podle pozice, nebo podle klíče.

Metody

Add(Object, String, Object, Object)

Přidá prvek do objektu Collection .

Clear()

Odstraní všechny prvky objektu jazyka Visual Basic Collection .

Contains(String)

Vrátí hodnotu, která označuje, zda objekt jazyka Visual Basic Collection obsahuje prvek s konkrétním klíčem.

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 Collection .

Remove(String)

Odebere prvek z objektu Collection .

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.

Platí pro