Click here to Skip to main content
15,886,026 members
Articles / Programming Languages / C#

Add Support for "Set" Collections to .NET

Rate me:
Please Sign up or sign in to vote.
4.76/5 (83 votes)
28 Mar 20047 min read 470.4K   6.6K   178  
An implementation of "Sets" for .NET
<html dir="LTR"><head><META http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"><title>HashedSet Members</title><xml></xml><link rel="stylesheet" type="text/css" href="MSDN.css"></head><body id="bodyID" class="dtBODY"><div id="nsbanner"><div id="bannerrow1"><table class="bannerparthead" cellspacing="0"><tr id="hdr"><td class="runninghead">"Set" Collections Library for .NET</td><td class="product"></td></tr></table></div><div id="TitleRow"><h1 class="dtH1">HashedSet Members
					</h1></div></div><div id="nstext"><p><a href="Iesi.Collections.HashedSet.html">HashedSet overview</a></p><h4 class="dtH4">Public Instance Constructors</h4><div class="tablediv"><table class="dtTABLE" cellspacing="0"><tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.HashedSetConstructor.html">HashedSet</a></td><td width="50%">Overloaded. Initializes a new instance of the HashedSet class.</td></tr></table></div><h4 class="dtH4">Public Instance Properties</h4><div class="tablediv"><table class="dtTABLE" cellspacing="0">
<tr VALIGN="top"><td width="50%"><img src="pubproperty.gif"><a href="Iesi.Collections.DictionarySet.Count.html">Count</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            The number of elements contained in this collection.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubproperty.gif"><a href="Iesi.Collections.DictionarySet.IsEmpty.html">IsEmpty</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Returns <code>true</code> if this set contains no elements.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubproperty.gif"><a href="Iesi.Collections.DictionarySet.IsSynchronized.html">IsSynchronized</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            None of the objects based on <code>DictionarySet</code> are synchronized.  Use the
            <code>SyncRoot</code> property instead.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubproperty.gif"><a href="Iesi.Collections.DictionarySet.SyncRoot.html">SyncRoot</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Returns an object that can be used to synchronize the <code>Set</code> between threads.
            </td></tr></table></div><h4 class="dtH4">Public Instance Methods</h4><div class="tablediv"><table class="dtTABLE" cellspacing="0">
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.Add.html">Add</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Adds the specified element to this set if it is not already present.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.AddAll.html">AddAll</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Adds all the elements in the specified collection to the set if they are not already present.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.Clear.html">Clear</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Removes all objects from the set.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.Set.Clone.html">Clone</a> (inherited from <b>Set</b>)</td><td width="50%">
            Returns a clone of the <code>Set</code> instance.  This will work for derived <code>Set</code>
            classes if the derived class implements a constructor that takes no arguments.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.Contains.html">Contains</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Returns <code>true</code> if this set contains the specified element.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.ContainsAll.html">ContainsAll</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Returns <code>true</code> if the set contains all the elements in the specified collection.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.CopyTo.html">CopyTo</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Copies the elements in the <code>Set</code> to an array.  The type of array needs
            to be compatible with the objects in the <code>Set</code>, obviously.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.Set.Equals.html">Equals</a> (inherited from <b>Set</b>)</td><td width="50%">
            This method will test the <code>Set</code> against another <code>Set</code> for "equality".
            In this case, "equality" means that the two sets contain the same elements.
            The "==" and "!=" operators are not overridden by design.  If you wish to check
            for "equivalent" <code>Set</code> instances, use <code>Equals()</code>.  If you wish to check
            to see if two references are actually the same object, use "==" and "!=".  
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.Set.ExclusiveOr_overload_1.html">ExclusiveOr</a> (inherited from <b>Set</b>)</td><td width="50%">
            Performs an "exclusive-or" of the two sets, keeping only the elements that
            are in one of the sets, but not in both.  The original sets are not modified
            during this operation.  The result set is a <code>Clone()</code> of this set containing
            the elements from the exclusive-or operation.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.GetEnumerator.html">GetEnumerator</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Gets an enumerator for the elements in the <code>Set</code>.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.Set.GetHashCode.html">GetHashCode</a> (inherited from <b>Set</b>)</td><td width="50%">
            Gets the hashcode for the object.  Not implemented.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassGetTypeTopic.htm">GetType</a> (inherited from <b>Object</b>)</td><td width="50%">Gets the <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemTypeClassTopic.htm">Type</a> of the current instance.</td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.Set.Intersect_overload_1.html">Intersect</a> (inherited from <b>Set</b>)</td><td width="50%">
            Performs an "intersection" of the two sets, where only the elements
            that are present in both sets remain.  That is, the element is included if it exists in
            both sets.  The <code>Intersect()</code> operation does not modify the input sets.  It returns
            a <code>Clone()</code> of this set with the appropriate elements removed.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.Set.Minus_overload_1.html">Minus</a> (inherited from <b>Set</b>)</td><td width="50%">
            Performs a "minus" of set <code>b</code> from set <code>a</code>.  This returns a set of all
            the elements in set <code>a</code>, removing the elements that are also in set <code>b</code>.
            The original sets are not modified during this operation.  The result set is a <code>Clone()</code>
            of this <code>Set</code> containing the elements from the operation.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.Remove.html">Remove</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Removes the specified element from the set.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.RemoveAll.html">RemoveAll</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Remove all the specified elements from this set, if they exist in this set.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.DictionarySet.RetainAll.html">RetainAll</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Retains only the elements in this set that are contained in the specified collection.
            </td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassToStringTopic.htm">ToString</a> (inherited from <b>Object</b>)</td><td width="50%">Returns a <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemStringClassTopic.htm">String</a> that represents the current <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassTopic.htm">Object</a>.</td></tr>
<tr VALIGN="top"><td width="50%"><img src="pubmethod.gif"><a href="Iesi.Collections.Set.Union_overload_1.html">Union</a> (inherited from <b>Set</b>)</td><td width="50%">
            Performs a "union" of the two sets, where all the elements
            in both sets are present.  That is, the element is included if it is in either <code>a</code> or <code>b</code>.
            Neither this set nor the input set are modified during the operation.  The return value
            is a <code>Clone()</code> of this set with the extra elements added in.
            </td></tr></table></div><h4 class="dtH4">Protected Instance Fields</h4><div class="tablediv"><table class="dtTABLE" cellspacing="0">
<tr VALIGN="top"><td width="50%"><img src="protfield.gif"><a href="Iesi.Collections.DictionarySet.InternalDictionary.html">InternalDictionary</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            Provides the storage for elements in the <code>Set</code>, stored as the key-set
            of the <code>IDictionary</code> object.  Set this object in the constructor
            if you create your own <code>Set</code> class.  
            </td></tr></table></div><h4 class="dtH4">Protected Instance Properties</h4><div class="tablediv"><table class="dtTABLE" cellspacing="0">
<tr VALIGN="top"><td width="50%"><img src="protproperty.gif"><a href="Iesi.Collections.DictionarySet.Placeholder.html">Placeholder</a> (inherited from <b>DictionarySet</b>)</td><td width="50%">
            The placeholder object used as the value for the <code>IDictionary</code> instance.
            </td></tr></table></div><h4 class="dtH4">Protected Instance Methods</h4><div class="tablediv"><table class="dtTABLE" cellspacing="0">
<tr VALIGN="top"><td width="50%"><img src="protmethod.gif"><a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassFinalizeTopic.htm">Finalize</a> (inherited from <b>Object</b>)</td><td width="50%">Allows an <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassTopic.htm">Object</a> to attempt to free resources and perform other cleanup operations before
   the <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassTopic.htm">Object</a> is reclaimed by garbage collection.</td></tr>
<tr VALIGN="top"><td width="50%"><img src="protmethod.gif"><a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassMemberwiseCloneTopic.htm">MemberwiseClone</a> (inherited from <b>Object</b>)</td><td width="50%">Creates a shallow copy of the current <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemObjectClassTopic.htm">Object</a>.</td></tr></table></div><h4 class="dtH4">See Also</h4><p><a href="Iesi.Collections.HashedSet.html">HashedSet Class</a> | <a href="Iesi.Collections.html">Iesi.Collections Namespace</a></p><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" viewastext="true" style="display: none;"><param name="Keyword" value="HashedSet class"><param name="Keyword" value="Iesi.Collections.HashedSet class"><param name="Keyword" value="HashedSet class, all members"></object><hr><div id="footer"><p></p><p>Generated from assembly Iesi.Collections [1.0.0.1]</p></div></div></body></html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions