Collection Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
A Visual Basic Collection
is an ordered set of items that can be referred to as a unit.
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
- Inheritance
-
Collection
- Attributes
- Implements
Examples
The following example creates the Collection
object names
and a dialog box with which a user can add objects (names) to the collection. It then displays the names in the collection, and finally empties the collection without disposing of the Collection
object itself.
To see how this works, choose the Add Class command from the Project menu and declare a public variable called instanceName
at the module level of nameClass
(type Public instanceName
) to hold the names of each instance. Leave the default name as nameClass
. Copy and paste the following code into the General section of another module, and then start it with the statement classNamer
in another procedure. (This example works only with host applications that support classes.)
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
Remarks
Note
Whenever possible, you should use the generic collections in the System.Collections.Generic namespace or the System.Collections.Concurrent namespace instead of a Visual Basic Collection
. For more information, see Collections - C# or Collections - Visual Basic.
The Visual Basic Collection
object provides a convenient way to refer to a related group of items as a single object. The items, or elements, in a collection need only be related by the fact that they exist in the collection. Elements of a collection do not have to share the same data type.
You can create a collection the same way you create other objects, as the following example illustrates.
Dim coll As New Microsoft.VisualBasic.Collection()
Once you have created a collection, you can do any of the following:
Add an element with the Add method.
Remove an element with the Remove method.
Remove all elements with the Clear method.
Find out how many elements the collection contains with the Count property.
Check whether a specific element is present with the Contains method.
Return a specific element from the collection with the Item[] property.
Iterate through the entire collection with the For Each...Next Statement.
Note
Although the Visual Basic
Collection
object has functionality identical to theCollection
object in Visual Basic 6.0, the two cannot interoperate in a COM environment.Caution
Iterating through a Visual Basic
Collection
is not a thread-safe procedure. Even if the collection is synchronized, other threads can still modify the collection, causing the enumerator to throw an exception. To guarantee thread safety during enumeration, either lock the collection or catch the exceptions resulting from changes made by other threads. For more information on locking a programming element, see SyncLock Statement.
Constructors
Collection() |
Creates and returns a new Visual Basic Collection object. |
Properties
Count |
Gets the number of elements in a collection. |
Item[Int32] |
Gets a specific element of a |
Item[Object] |
Gets a specific element of a |
Item[String] |
Gets a specific element of a |
Methods
Add(Object, String, Object, Object) |
Adds an element to a |
Clear() |
Deletes all elements of a Visual Basic |
Contains(String) |
Returns a value that indicates whether a Visual Basic |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetEnumerator() |
Returns an enumerator that iterates through the collection. |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
Remove(Int32) |
Removes an element from a |
Remove(String) |
Removes an element from a |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
Explicit Interface Implementations
ICollection.CopyTo(Array, Int32) |
Copies the elements of the Collection to an Array, starting at a particular Array index. |
ICollection.Count |
Gets the number of items in this collection. |
ICollection.IsSynchronized |
Gets a value that indicates whether access to the Collection object is synchronized (thread-safe). |
ICollection.SyncRoot |
Gets an object that can be used to synchronize access to the Collection object. |
IDeserializationCallback.OnDeserialization(Object) |
Runs after the entire Collection object graph has been deserialized. |
IEnumerable.GetEnumerator() |
Gets an enumerator that iterates through the collection. |
IList.Add(Object) |
Adds an item to the collection. |
IList.Clear() |
Removes all items from the Collection object. |
IList.Contains(Object) |
Determines whether the Collection object contains a specific value. |
IList.IndexOf(Object) |
Determines the index of a specific item in the Collection object. |
IList.Insert(Int32, Object) |
Inserts an item to the Collection object at the specified index. |
IList.IsFixedSize |
Gets a value that indicates whether the Collection object has a fixed size. |
IList.IsReadOnly |
Gets a value that indicates whether the Collection object is. |
IList.Item[Int32] |
Gets or sets the element at the specified index. |
IList.Remove(Object) |
Removes the first occurrence of a specific object from the Collection object. |
IList.RemoveAt(Int32) |
Removes the Collection object item at the specified index. |
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Returns the data needed to serialize the Collection object. |
Extension Methods
Cast<TResult>(IEnumerable) |
Casts the elements of an IEnumerable to the specified type. |
OfType<TResult>(IEnumerable) |
Filters the elements of an IEnumerable based on a specified type. |
AsParallel(IEnumerable) |
Enables parallelization of a query. |
AsQueryable(IEnumerable) |
Converts an IEnumerable to an IQueryable. |