A collection type similar to HashSet<T> into which advices can be injected dynamically.
Namespace: PostSharp.Patterns.Collections
Assembly: PostSharp.Patterns.Common.dll
Syntax
public class AdvisableHashSet<T> : DynamicallyAdvisableObject, ISerializable, IDeserializationCallback, ISet<T>, ICollection<T>, IEnumerable<T>, IDynamicallyAdvisableHashSet, IDynamicallyAdvisable, IQueryInterface, ICollection, IEnumerable
Type Parameters
Name | Description |
---|---|
T | The type of elements in the collection |
Remarks
The API of this class is compatible with the HashSet<T> class. It provides some additions but preserves the same design and naming conventions.
Classes that derive from HashSet<T> can add functionalities by overriding protected methods or by defining new public methods.
New public methods wrap their logic in a call of the ExecuteWithAdvices<TResult, TAction>(ObjectAccessLevel, ref TAction) method,
which applies boundary aspects. Public methods can access the data structure thanks to protected methods, which have a name ending in Item
, for instance AddItem(T).
Public methods should not use other public methods of the class, as it may cause inconsistent invocation of advises and performance issues.
Constructors
Name | Description |
---|---|
AdvisableHashSet() | Initializes a new instance of the AdvisableHashSet<T> class that is empty and uses the default equality comparer for the set type. |
AdvisableHashSet(IEnumerable<T>) | Initializes a new instance of the AdvisableHashSet<T> class that uses the default equality comparer for the set type, contains elements copied from the specified collection, and has sufficient capacity to accommodate the number of elements copied. |
AdvisableHashSet(IEnumerable<T>, IEqualityComparer<T>) | Initializes a new instance of the AdvisableHashSet<T> class that uses the specified equality comparer for the set type, contains elements copied from the specified collection, and has sufficient capacity to accommodate the number of elements copied. |
AdvisableHashSet(IEqualityComparer<T>) | Initializes a new instance of the AdvisableHashSet<T> class that is empty and uses the specified equality comparer for the set type. |
Properties
Name | Description |
---|---|
Comparer | Gets the IEqualityComparer<T> object that is used to determine equality for the values in the set. |
Count |
Methods
Name | Description |
---|---|
Add(T) | |
AddItem(T) | Inserts an element into the underlying set. |
ChangeManyItems(IList<T>, IList<T>) | Modifies the underlying set by adding and removing the specified items. |
Clear() | |
ClearItems() | Removes all elements from the underlying set. |
Contains(T) | |
CopyTo(T[]) | Copies the elements of an AdvisableHashSet<T> object to an array. |
CopyTo(T[], int) | |
CopyTo(T[], int, int) | Copies the specified number of elements of an AdvisableHashSet<T> object to an array, starting at the specified array index. |
CreateSetComparer() | Returns an IEqualityComparer object that can be used for equality testing of a AdvisableHashSet<T> object. |
ExceptWith(IEnumerable<T>) | |
GetAdviceEnumerator() | Gets an AdviceEnumerator<T> for the ICollectionDynamicAdvice<T> interface. |
GetEnumerator() | Returns an enumerator that iterates through the AdvisableHashSet<T>. |
GetObjectData(SerializationInfo, StreamingContext) | |
IntersectWith(IEnumerable<T>) | |
IsProperSubsetOf(IEnumerable<T>) | |
IsProperSupersetOf(IEnumerable<T>) | |
IsSubsetOf(IEnumerable<T>) | |
IsSupersetOf(IEnumerable<T>) | |
OnDeserialization(object) | |
Overlaps(IEnumerable<T>) | |
Remove(T) | |
RemoveItem(T) | Removes an element from the underlying collection. |
RemoveWhere(Predicate<T>) | Removes all elements that match the conditions defined by the specified predicate from a HashSet<T> collection. |
SetEquals(IEnumerable<T>) | |
SymmetricExceptWith(IEnumerable<T>) | |
TrimExcess() | Sets the capacity of a AdvisableHashSet<T> object to the actual number of elements it contains, rounded up to a nearby, implementation-specific value. |
UnionWith(IEnumerable<T>) |