Udostępnij za pośrednictwem


Collection Klasa

Definicja

Visual Basic Collection to uporządkowany zestaw elementów, które mogą być określane jako jednostka.

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
Dziedziczenie
Collection
Atrybuty
Implementuje

Przykłady

Poniższy przykład tworzy Collection obiekt names i okno dialogowe, za pomocą którego użytkownik może dodawać obiekty (nazwy) do kolekcji. Następnie wyświetla nazwy w kolekcji, a na koniec opróżnia kolekcję bez wprowadzania Collection samego obiektu.

Aby zobaczyć, jak to działa, wybierz polecenie Dodaj klasę z menu Project i zadeklaruj zmienną publiczną o nazwie instanceName na poziomie modułu nameClass (typ Public instanceName) do przechowywania nazw każdego wystąpienia. Pozostaw nazwę domyślną jako nameClass. Skopiuj i wklej następujący kod do sekcji Ogólne innego modułu, a następnie uruchom go za pomocą instrukcji classNamer w innej procedurze. (Ten przykład działa tylko z aplikacjami hosta, które obsługują klasy).

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

Uwagi

Uwaga / Notatka

Jeśli to możliwe, należy użyć kolekcji ogólnych w System.Collections.Generic przestrzeni nazw lub System.Collections.Concurrent przestrzeni nazw zamiast języka Visual Basic Collection. Aby uzyskać więcej informacji, zobacz Kolekcje — C# lub Kolekcje — Visual Basic.

Obiekt Języka Visual Basic Collection zapewnia wygodny sposób odwoływania się do powiązanej grupy elementów jako pojedynczego obiektu. Elementy lub elementy w kolekcji muszą być powiązane tylko z faktem, że istnieją w kolekcji. Elementy kolekcji nie muszą współdzielić tego samego typu danych.

Możesz utworzyć kolekcję w taki sam sposób, jak w przypadku tworzenia innych obiektów, jak pokazano w poniższym przykładzie.

Dim coll As New Microsoft.VisualBasic.Collection()

Po utworzeniu kolekcji można wykonać dowolną z następujących czynności:

  • Dodaj element za pomocą Add metody .

  • Usuń element za pomocą Remove metody .

  • Usuń wszystkie elementy za pomocą Clear metody .

  • Dowiedz się, ile elementów zawiera kolekcja z właściwością Count .

  • Sprawdź, czy określony element jest obecny w metodzie Contains .

  • Zwróć określony element z kolekcji z właściwością Item[] .

  • Iteruj całą kolekcję za pomocą elementu Dla każdego... Następna instrukcja.

    Uwaga / Notatka

    Mimo że obiekt Języka Visual Basic Collection ma funkcje identyczne z obiektem Collection w Visual Basic 6.0, te dwa nie mogą współdziałać w środowisku COM.

    Ostrzeżenie

    Iteracja za pomocą języka Visual Basic Collection nie jest procedurą bezpieczną wątkowo. Nawet jeśli kolekcja jest zsynchronizowana, inne wątki nadal mogą modyfikować kolekcję, co powoduje zgłoszenie wyjątku przez moduł wyliczający. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, zablokuj kolekcję lub przechwyć wyjątki wynikające ze zmian wprowadzonych przez inne wątki. Aby uzyskać więcej informacji na temat blokowania elementu programowania, zobacz SyncLock Statement (Instrukcja SyncLock).

Konstruktory

Nazwa Opis
Collection()

Tworzy i zwraca nowy obiekt Języka Visual Basic Collection .

Właściwości

Nazwa Opis
Count

Pobiera liczbę elementów w kolekcji.

Item[Int32]

Pobiera określony element Collection obiektu według pozycji lub klucza.

Item[Object]

Pobiera określony element Collection obiektu według pozycji lub klucza.

Item[String]

Pobiera określony element Collection obiektu według pozycji lub klucza.

Metody

Nazwa Opis
Add(Object, String, Object, Object)

Dodaje element do Collection obiektu.

Clear()

Usuwa wszystkie elementy obiektu Visual Basic Collection .

Contains(String)

Zwraca wartość wskazującą, czy obiekt Języka Visual Basic Collection zawiera element z określonym kluczem.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetEnumerator()

Zwraca moduł wyliczający, który iteruje za pośrednictwem kolekcji.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
Remove(Int32)

Usuwa element z Collection obiektu.

Remove(String)

Usuwa element z Collection obiektu.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

Nazwa Opis
ICollection.CopyTo(Array, Int32)

Kopiuje elementy Collection elementu do elementu Array, zaczynając od określonego Array indeksu.

ICollection.Count

Pobiera liczbę elementów w tej kolekcji.

ICollection.IsSynchronized

Pobiera wartość wskazującą, czy dostęp do Collection obiektu jest synchronizowany (bezpieczny wątkowo).

ICollection.SyncRoot

Pobiera obiekt, który może służyć do synchronizowania dostępu do Collection obiektu.

IDeserializationCallback.OnDeserialization(Object)

Uruchamia się po deserializacji całego Collection grafu obiektów.

IEnumerable.GetEnumerator()

Pobiera moduł wyliczający, który iteruje za pośrednictwem kolekcji.

IList.Add(Object)

Dodaje element do kolekcji.

IList.Clear()

Usuwa wszystkie elementy z Collection obiektu.

IList.Contains(Object)

Określa, czy Collection obiekt zawiera określoną wartość.

IList.IndexOf(Object)

Określa indeks określonego elementu w Collection obiekcie.

IList.Insert(Int32, Object)

Wstawia element do Collection obiektu w określonym indeksie.

IList.IsFixedSize

Pobiera wartość wskazującą, czy Collection obiekt ma stały rozmiar.

IList.IsReadOnly

Pobiera wartość wskazującą, czy Collection obiekt jest.

IList.Item[Int32]

Pobiera lub ustawia element w określonym indeksie.

IList.Remove(Object)

Usuwa pierwsze wystąpienie określonego obiektu z Collection obiektu.

IList.RemoveAt(Int32)

Collection Usuwa element obiektu w określonym indeksie.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Zwraca dane potrzebne do serializacji Collection obiektu.

Metody rozszerzania

Nazwa Opis
AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje IEnumerable na IQueryable.

Cast<TResult>(IEnumerable)

Rzutuje elementy IEnumerable do określonego typu.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable na podstawie określonego typu.

Dotyczy