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 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 BasicCollection
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 |
Item[Object] |
Pobiera określony element |
Item[String] |
Pobiera określony element |
Metody
Add(Object, String, Object, Object) |
Dodaje element do |
Clear() |
Usuwa wszystkie elementy obiektu Visual Basic |
Contains(String) |
Zwraca wartość wskazującą, czy obiekt Visual Basic |
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 |
Remove(String) |
Usuwa element z |
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 |