Collection objects are used whenever arbitrary sets of items are needed. A collection is different from an array, since items can be added and removed from the collection without having to manipulate the whole collection in memory.
The collection object is defined as a set of VARIANTs. In this way, a collection can be a collection of any of the legal Automation data types. By convention, all collections defined by Active Directory are homogeneous, that is they contain items of one data type only, for example VT_BSTR or VT_I2, etc
Collection objects in Active Directory can be persisted in the underlying store, or can be used to return volatile information in lists that are not persisted in the underlying namespace. Examples of volatile information include lists of print jobs, communications sessions active at a server, etc.
Lists of object references, for example users in a security group, are implemented using the IADsMembers object, described below.