Collection Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
Collectionma funkcje identyczne z obiektemCollectionw Visual Basic 6.0, te dwa nie mogą współdziałać w środowisku COM.Ostrzeżenie
Iteracja za pomocą języka Visual Basic
Collectionnie 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 |
| Item[Object] |
Pobiera określony element |
| Item[String] |
Pobiera określony element |
Metody
| Nazwa | Opis |
|---|---|
| Add(Object, String, Object, Object) |
Dodaje element do |
| Clear() |
Usuwa wszystkie elementy obiektu Visual Basic |
| Contains(String) |
Zwraca wartość wskazującą, czy obiekt Języka Visual Basic |
| 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 |
| Remove(String) |
Usuwa element z |
| 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. |