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 następnie opróżnia kolekcję bez samodzielnego Collection dysponowania obiektu.

Aby zobaczyć, jak to działa, wybierz polecenie Dodaj klasę z menu Projekt i zadeklaruj zmienną publiczną o nazwie instanceName na poziomie modułu nameClass (typ Public instanceName), aby przechowywać nazwy każdego wystąpienia. Pozostaw nazwę domyślną jako nameClass. Skopiuj i wklej następujący kod w 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

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 Visual Basic Collection. Aby uzyskać więcej informacji, zobacz Kolekcje — C# lub Kolekcje — Visual Basic.

Obiekt 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ę tak samo 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 z Remove metodą .

  • 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[] .

  • Iteracja całej kolekcji za pomocą elementu Dla każdego... Następna instrukcja.

    Uwaga

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

    Przestroga

    Iterowanie 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ę, powodując, że moduł wyliczający zgłasza wyjątek. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, zablokuj kolekcję lub przechwyć wyjątki wynikające z zmian wprowadzonych przez inne wątki. Aby uzyskać więcej informacji na temat blokowania elementu programowania, zobacz SyncLock Statement (Instrukcja SyncLock).

Konstruktory

Collection()

Tworzy i zwraca nowy obiekt Visual Basic Collection .

Właściwości

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

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 Visual Basic Collection zawiera element z określonym kluczem.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetEnumerator()

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

GetHashCode()

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

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

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

(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

ICollection.CopyTo(Array, Int32)

Kopiuje elementy Collection elementu do obiektu 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)

Działa po deserializacji całego Collection grafu obiektów.

IEnumerable.GetEnumerator()

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

IList.Add(Object)

Dodaje element do kolekcji.

IList.Clear()

Usuwa wszystkie elementy z Collection obiektu.

IList.Contains(Object)

Określa, Collection czy 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 pod określonym indeksem.

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

Cast<TResult>(IEnumerable)

Rzutuje elementy elementu IEnumerable do określonego typu.

OfType<TResult>(IEnumerable)

Filtruje elementy elementu IEnumerable na podstawie określonego typu.

AsParallel(IEnumerable)

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

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy