Sdílet prostřednictvím


Collection Třída

Definice

Visual Basic Collection je uspořádaná sada položek, které lze řadit 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, se kterým může uživatel přidat objekty (názvy) do kolekce. Pak zobrazí názvy v kolekci a nakonec vyprázdní kolekci, aniž by se oddělil Collection samotný objekt.

Pokud chcete zjistit, jak to funguje, zvolte příkaz Přidat třídu z nabídky Projektu a deklarujte veřejnou proměnnou volanou instanceName na úrovni nameClass modulu (typu Public instanceName) pro uložení názvů jednotlivých instancí. Ponechte výchozí název jako nameClass. Zkopírujte následující kód a vložte ho do části Obecné jiného modulu a pak ho classNamer spusťte příkazem v jiné proceduře. (Tento příklad funguje jenom 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:

Kdykoli 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 naleznete 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í souviset pouze se skutečností, že v kolekci existují. Prvky kolekce nemusí sdílet stejný datový typ.

Kolekci můžete vytvořit stejným způsobem jako ostatní objekty, jak ukazuje následující příklad.

Dim coll As New Microsoft.VisualBasic.Collection()

Jakmile vytvoříte kolekci, můžete udělat některou z těchto věcí:

  • Přidejte prvek s metodou Add .

  • 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 metodě k dispozici Contains konkrétní prvek.

  • Vrátí konkrétní prvek z kolekce s Item[] vlastností.

  • Iterujte celou kolekci pomocí příkazu For Each... Next – příkaz.

    Poznámka:

    I když objekt jazyka Visual Basic Collection má funkce identické s objektem Collection v jazyce Visual Basic 6.0, dva nemohou spolupracovat v prostředí COM.

    Upozornění

    Iterace prostřednictvím jazyka 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 zaručit bezpečnost vláken během výčtu, zamkněte kolekci nebo zachyťte výjimky vyplývající z změn provedených jinými vlákny. Další informace o uzamčení programovacího prvku naleznete v tématu SyncLock – příkaz.

Konstruktory

Name Description
Collection()

Vytvoří a vrátí nový objekt jazyka Visual Basic Collection .

Vlastnosti

Name Description
Count

Získá počet prvků v kolekci.

Item[Int32]

Získá určitý prvek Collection objektu buď podle pozice, nebo podle klíče.

Item[Object]

Získá určitý prvek Collection objektu buď podle pozice, nebo podle klíče.

Item[String]

Získá určitý prvek Collection objektu buď podle pozice, nebo podle klíče.

Metody

Name Description
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á určuje, zda objekt jazyka Visual Basic Collection obsahuje prvek s konkrétním klíčem.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetEnumerator()

Vrátí enumerátor, který prochází kolekcí.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(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í

Name Description
ICollection.CopyTo(Array, Int32)

Zkopíruje prvky do objektu CollectionArray, 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 je přístup k objektu Collection synchronizován (thread-safe).

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 prostřednictvím kolekce.

IList.Add(Object)

Přidá položku do kolekce.

IList.Clear()

Odebere všechny položky z objektu Collection .

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á určuje, zda Collection objekt má pevnou velikost.

IList.IsReadOnly

Získá hodnotu, která označuje, zda Collection je objekt.

IList.Item[Int32]

Získá nebo nastaví prvek v zadaném 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í

Name Description
AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede IEnumerable na IQueryable.

Cast<TResult>(IEnumerable)

Přetypuje prvky IEnumerable na zadaný typ.

OfType<TResult>(IEnumerable)

Filtruje prvky IEnumerable na základě zadaného typu.

Platí pro