Refactored the Kernel registration fluent interface to be more readable, better suppo...
[castle.git] / SharedLibs / net / 2.0 / Iesi.Collections.xml
blobf13bb52efa4dad495d8a76d6b4a216873ef7a5a5
1 <?xml version="1.0"?>
2 <doc>
3     <assembly>
4         <name>Iesi.Collections</name>
5     </assembly>
6     <members>
7         <member name="T:Iesi.Collections.Generic.DictionarySet`1">
8              <summary>
9              <p><c>DictionarySet</c> is an abstract class that supports the creation of new <c>Set</c>
10              types where the underlying data store is an <c>IDictionary</c> instance.</p> 
11               
12              <p>You can use any object that implements the <c>IDictionary</c> interface to hold set data.
13              You can define your own, or you can use one of the objects provided in the Framework.   
14              The type of <c>IDictionary</c> you choose will affect both the performance and the behavior
15              of the <c>Set</c> using it. </p>
16             
17              <p>To make a <c>Set</c> typed based on your own <c>IDictionary</c>, simply derive a
18              new class with a constructor that takes no parameters.  Some <c>Set</c> implmentations
19              cannot be defined with a default constructor.  If this is the case for your class, 
20              you will need to override <c>Clone()</c> as well.</p>
21             
22              <p>It is also standard practice that at least one of your constructors takes an <c>ICollection</c> or 
23              an <c>ISet</c> as an argument.</p>
24              </summary>
25         </member>
26         <member name="T:Iesi.Collections.Generic.Set`1">
27             <summary><p>A collection that contains no duplicate elements.  This class models the mathematical
28             <c>Set</c> abstraction, and is the base class for all other <c>Set</c> implementations.  
29             The order of elements in a set is dependant on (a)the data-structure implementation, and 
30             (b)the implementation of the various <c>Set</c> methods, and thus is not guaranteed.</p>
31              
32             <p>None of the <c>Set</c> implementations in this library are guranteed to be thread-safe
33             in any way unless wrapped in a <c>SynchronizedSet</c>.</p>
34             
35             <p>The following table summarizes the binary operators that are supported by the <c>Set</c> class.</p>
36             <list type="table">
37                 <listheader>
38                         <term>Operation</term>
39                         <term>Description</term>
40                         <term>Method</term>
41                         <term>Operator</term>
42                 </listheader>
43                 <item>
44                         <term>Union (OR)</term>
45                         <term>Element included in result if it exists in either <c>A</c> OR <c>B</c>.</term>
46                         <term><c>Union()</c></term>
47                         <term><c>|</c></term>
48                 </item>
49                 <item>
50                         <term>Intersection (AND)</term>
51                         <term>Element included in result if it exists in both <c>A</c> AND <c>B</c>.</term>
52                         <term><c>InterSect()</c></term>
53                         <term><c>&amp;</c></term>
54                 </item>
55                 <item>
56                         <term>Exclusive Or (XOR)</term>
57                         <term>Element included in result if it exists in one, but not both, of <c>A</c> and <c>B</c>.</term>
58                         <term><c>ExclusiveOr()</c></term>
59                         <term><c>^</c></term>
60                 </item>
61                 <item>
62                         <term>Minus (n/a)</term>
63                         <term>Take all the elements in <c>A</c>.  Now, if any of them exist in <c>B</c>, remove
64                         them.  Note that unlike the other operators, <c>A - B</c> is not the same as <c>B - A</c>.</term>
65                         <term><c>Minus()</c></term>
66                         <term><c>-</c></term>
67                 </item>
68             </list>
69             </summary>
70         </member>
71         <member name="T:Iesi.Collections.Generic.ISet`1">
72             <summary>
73             <p>A collection that contains no duplicate elements.  This interface models the mathematical
74             <c>Set</c> abstraction.    
75             The order of elements in a set is dependant on (a)the data-structure implementation, and 
76             (b)the implementation of the various <c>Set</c> methods, and thus is not guaranteed.</p>
77             
78             <p>None of the <c>Set</c> implementations in this library are guranteed to be thread-safe
79             in any way unless wrapped in a <c>SynchronizedSet</c>.</p>
80             
81             <p>The following table summarizes the binary operators that are supported by the <c>Set</c> class.</p>
82             <list type="table">
83                 <listheader>
84                         <term>Operation</term>
85                         <term>Description</term>
86                         <term>Method</term>
87                 </listheader>
88                 <item>
89                         <term>Union (OR)</term>
90                         <term>Element included in result if it exists in either <c>A</c> OR <c>B</c>.</term>
91                         <term><c>Union()</c></term>
92                 </item>
93                 <item>
94                         <term>Intersection (AND)</term>
95                         <term>Element included in result if it exists in both <c>A</c> AND <c>B</c>.</term>
96                         <term><c>InterSect()</c></term>
97                 </item>
98                 <item>
99                         <term>Exclusive Or (XOR)</term>
100                         <term>Element included in result if it exists in one, but not both, of <c>A</c> and <c>B</c>.</term>
101                         <term><c>ExclusiveOr()</c></term>
102                 </item>
103                 <item>
104                         <term>Minus (n/a)</term>
105                         <term>Take all the elements in <c>A</c>.  Now, if any of them exist in <c>B</c>, remove
106                         them.  Note that unlike the other operators, <c>A - B</c> is not the same as <c>B - A</c>.</term>
107                         <term><c>Minus()</c></term>
108                 </item>
109             </list>
110             </summary>
111         </member>
112         <member name="M:Iesi.Collections.Generic.ISet`1.Union(Iesi.Collections.Generic.ISet{`0})">
113             <summary>
114             Performs a "union" of the two sets, where all the elements
115             in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
116             Neither this set nor the input set are modified during the operation.  The return value
117             is a <c>Clone()</c> of this set with the extra elements added in.
118             </summary>
119             <param name="a">A collection of elements.</param>
120             <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
121             Neither of the input objects is modified by the union.</returns>
122         </member>
123         <member name="M:Iesi.Collections.Generic.ISet`1.Intersect(Iesi.Collections.Generic.ISet{`0})">
124             <summary>
125             Performs an "intersection" of the two sets, where only the elements
126             that are present in both sets remain.  That is, the element is included if it exists in
127             both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
128             a <c>Clone()</c> of this set with the appropriate elements removed.
129             </summary>
130             <param name="a">A set of elements.</param>
131             <returns>The intersection of this set with <c>a</c>.</returns>
132         </member>
133         <member name="M:Iesi.Collections.Generic.ISet`1.Minus(Iesi.Collections.Generic.ISet{`0})">
134             <summary>
135             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
136             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
137             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
138             of this <c>Set</c> containing the elements from the operation.
139             </summary>
140             <param name="a">A set of elements.</param>
141             <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
142         </member>
143         <member name="M:Iesi.Collections.Generic.ISet`1.ExclusiveOr(Iesi.Collections.Generic.ISet{`0})">
144             <summary>
145             Performs an "exclusive-or" of the two sets, keeping only the elements that
146             are in one of the sets, but not in both.  The original sets are not modified
147             during this operation.  The result set is a <c>Clone()</c> of this set containing
148             the elements from the exclusive-or operation.
149             </summary>
150             <param name="a">A set of elements.</param>
151             <returns>A set containing the result of <c>a ^ b</c>.</returns>
152         </member>
153         <member name="M:Iesi.Collections.Generic.ISet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
154             <summary>
155             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
156             </summary>
157             <param name="c">A collection of objects.</param>
158             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
159         </member>
160         <member name="M:Iesi.Collections.Generic.ISet`1.Add(`0)">
161             <summary>
162             Adds the specified element to this set if it is not already present.
163             </summary>
164             <param name="o">The object to add to the set.</param>
165             <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
166         </member>
167         <member name="M:Iesi.Collections.Generic.ISet`1.AddAll(System.Collections.Generic.ICollection{`0})">
168             <summary>
169             Adds all the elements in the specified collection to the set if they are not already present.
170             </summary>
171             <param name="c">A collection of objects to add to the set.</param>
172             <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
173         </member>
174         <member name="M:Iesi.Collections.Generic.ISet`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
175             <summary>
176             Remove all the specified elements from this set, if they exist in this set.
177             </summary>
178             <param name="c">A collection of elements to remove.</param>
179             <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
180         </member>
181         <member name="M:Iesi.Collections.Generic.ISet`1.RetainAll(System.Collections.Generic.ICollection{`0})">
182             <summary>
183             Retains only the elements in this set that are contained in the specified collection.
184             </summary>
185             <param name="c">Collection that defines the set of elements to be retained.</param>
186             <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
187         </member>
188         <member name="P:Iesi.Collections.Generic.ISet`1.IsEmpty">
189             <summary>
190             Returns <see langword="true" /> if this set contains no elements.
191             </summary>
192         </member>
193         <member name="T:Iesi.Collections.ISet">
194             <summary>
195             <p>A collection that contains no duplicate elements.  This interface models the mathematical
196             <c>Set</c> abstraction.    
197             The order of elements in a set is dependant on (a)the data-structure implementation, and 
198             (b)the implementation of the various <c>Set</c> methods, and thus is not guaranteed.</p>
199             
200             <p>None of the <c>Set</c> implementations in this library are guranteed to be thread-safe
201             in any way unless wrapped in a <c>SynchronizedSet</c>.</p>
202             
203             <p>The following table summarizes the binary operators that are supported by the <c>Set</c> class.</p>
204             <list type="table">
205                 <listheader>
206                         <term>Operation</term>
207                         <term>Description</term>
208                         <term>Method</term>
209                 </listheader>
210                 <item>
211                         <term>Union (OR)</term>
212                         <term>Element included in result if it exists in either <c>A</c> OR <c>B</c>.</term>
213                         <term><c>Union()</c></term>
214                 </item>
215                 <item>
216                         <term>Intersection (AND)</term>
217                         <term>Element included in result if it exists in both <c>A</c> AND <c>B</c>.</term>
218                         <term><c>InterSect()</c></term>
219                 </item>
220                 <item>
221                         <term>Exclusive Or (XOR)</term>
222                         <term>Element included in result if it exists in one, but not both, of <c>A</c> and <c>B</c>.</term>
223                         <term><c>ExclusiveOr()</c></term>
224                 </item>
225                 <item>
226                         <term>Minus (n/a)</term>
227                         <term>Take all the elements in <c>A</c>.  Now, if any of them exist in <c>B</c>, remove
228                         them.  Note that unlike the other operators, <c>A - B</c> is not the same as <c>B - A</c>.</term>
229                         <term><c>Minus()</c></term>
230                 </item>
231             </list>
232             </summary>
233         </member>
234         <member name="M:Iesi.Collections.ISet.Union(Iesi.Collections.ISet)">
235             <summary>
236             Performs a "union" of the two sets, where all the elements
237             in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
238             Neither this set nor the input set are modified during the operation.  The return value
239             is a <c>Clone()</c> of this set with the extra elements added in.
240             </summary>
241             <param name="a">A collection of elements.</param>
242             <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
243             Neither of the input objects is modified by the union.</returns>
244         </member>
245         <member name="M:Iesi.Collections.ISet.Intersect(Iesi.Collections.ISet)">
246             <summary>
247             Performs an "intersection" of the two sets, where only the elements
248             that are present in both sets remain.  That is, the element is included if it exists in
249             both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
250             a <c>Clone()</c> of this set with the appropriate elements removed.
251             </summary>
252             <param name="a">A set of elements.</param>
253             <returns>The intersection of this set with <c>a</c>.</returns>
254         </member>
255         <member name="M:Iesi.Collections.ISet.Minus(Iesi.Collections.ISet)">
256             <summary>
257             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
258             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
259             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
260             of this <c>Set</c> containing the elements from the operation.
261             </summary>
262             <param name="a">A set of elements.</param>
263             <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
264         </member>
265         <member name="M:Iesi.Collections.ISet.ExclusiveOr(Iesi.Collections.ISet)">
266             <summary>
267             Performs an "exclusive-or" of the two sets, keeping only the elements that
268             are in one of the sets, but not in both.  The original sets are not modified
269             during this operation.  The result set is a <c>Clone()</c> of this set containing
270             the elements from the exclusive-or operation.
271             </summary>
272             <param name="a">A set of elements.</param>
273             <returns>A set containing the result of <c>a ^ b</c>.</returns>
274         </member>
275         <member name="M:Iesi.Collections.ISet.Contains(System.Object)">
276             <summary>
277             Returns <see langword="true" /> if this set contains the specified element.
278             </summary>
279             <param name="o">The element to look for.</param>
280             <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
281         </member>
282         <member name="M:Iesi.Collections.ISet.ContainsAll(System.Collections.ICollection)">
283             <summary>
284             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
285             </summary>
286             <param name="c">A collection of objects.</param>
287             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
288         </member>
289         <member name="M:Iesi.Collections.ISet.Add(System.Object)">
290             <summary>
291             Adds the specified element to this set if it is not already present.
292             </summary>
293             <param name="o">The object to add to the set.</param>
294             <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
295         </member>
296         <member name="M:Iesi.Collections.ISet.AddAll(System.Collections.ICollection)">
297             <summary>
298             Adds all the elements in the specified collection to the set if they are not already present.
299             </summary>
300             <param name="c">A collection of objects to add to the set.</param>
301             <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
302         </member>
303         <member name="M:Iesi.Collections.ISet.Remove(System.Object)">
304             <summary>
305             Removes the specified element from the set.
306             </summary>
307             <param name="o">The element to be removed.</param>
308             <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
309         </member>
310         <member name="M:Iesi.Collections.ISet.RemoveAll(System.Collections.ICollection)">
311             <summary>
312             Remove all the specified elements from this set, if they exist in this set.
313             </summary>
314             <param name="c">A collection of elements to remove.</param>
315             <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
316         </member>
317         <member name="M:Iesi.Collections.ISet.RetainAll(System.Collections.ICollection)">
318             <summary>
319             Retains only the elements in this set that are contained in the specified collection.
320             </summary>
321             <param name="c">Collection that defines the set of elements to be retained.</param>
322             <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
323         </member>
324         <member name="M:Iesi.Collections.ISet.Clear">
325             <summary>
326             Removes all objects from the set.
327             </summary>
328         </member>
329         <member name="P:Iesi.Collections.ISet.IsEmpty">
330             <summary>
331             Returns <see langword="true" /> if this set contains no elements.
332             </summary>
333         </member>
334         <member name="M:Iesi.Collections.Generic.Set`1.Union(Iesi.Collections.Generic.ISet{`0})">
335             <summary>
336             Performs a "union" of the two sets, where all the elements
337             in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
338             Neither this set nor the input set are modified during the operation.  The return value
339             is a <c>Clone()</c> of this set with the extra elements added in.
340             </summary>
341             <param name="a">A collection of elements.</param>
342             <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
343             Neither of the input objects is modified by the union.</returns>
344         </member>
345         <member name="M:Iesi.Collections.Generic.Set`1.Union(Iesi.Collections.Generic.ISet{`0},Iesi.Collections.Generic.ISet{`0})">
346             <summary>
347             Performs a "union" of two sets, where all the elements
348             in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
349             The return value is a <c>Clone()</c> of one of the sets (<c>a</c> if it is not <see langword="null" />) with elements of the other set
350             added in.  Neither of the input sets is modified by the operation.
351             </summary>
352             <param name="a">A set of elements.</param>
353             <param name="b">A set of elements.</param>
354             <returns>A set containing the union of the input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
355         </member>
356         <member name="M:Iesi.Collections.Generic.Set`1.op_BitwiseOr(Iesi.Collections.Generic.Set{`0},Iesi.Collections.Generic.Set{`0})">
357             <summary>
358             Performs a "union" of two sets, where all the elements
359             in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
360             The return value is a <c>Clone()</c> of one of the sets (<c>a</c> if it is not <see langword="null" />) with elements of the other set
361             added in.  Neither of the input sets is modified by the operation.
362             </summary>
363             <param name="a">A set of elements.</param>
364             <param name="b">A set of elements.</param>
365             <returns>A set containing the union of the input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
366         </member>
367         <member name="M:Iesi.Collections.Generic.Set`1.Intersect(Iesi.Collections.Generic.ISet{`0})">
368             <summary>
369             Performs an "intersection" of the two sets, where only the elements
370             that are present in both sets remain.  That is, the element is included if it exists in
371             both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
372             a <c>Clone()</c> of this set with the appropriate elements removed.
373             </summary>
374             <param name="a">A set of elements.</param>
375             <returns>The intersection of this set with <c>a</c>.</returns>
376         </member>
377         <member name="M:Iesi.Collections.Generic.Set`1.Intersect(Iesi.Collections.Generic.ISet{`0},Iesi.Collections.Generic.ISet{`0})">
378             <summary>
379             Performs an "intersection" of the two sets, where only the elements
380             that are present in both sets remain.  That is, the element is included only if it exists in
381             both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
382             The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <see langword="null" />) containing the
383             elements from the intersect operation. 
384             </summary>
385             <param name="a">A set of elements.</param>
386             <param name="b">A set of elements.</param>
387             <returns>The intersection of the two input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
388         </member>
389         <member name="M:Iesi.Collections.Generic.Set`1.op_BitwiseAnd(Iesi.Collections.Generic.Set{`0},Iesi.Collections.Generic.Set{`0})">
390             <summary>
391             Performs an "intersection" of the two sets, where only the elements
392             that are present in both sets remain.  That is, the element is included only if it exists in
393             both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
394             The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <see langword="null" />) containing the
395             elements from the intersect operation. 
396             </summary>
397             <param name="a">A set of elements.</param>
398             <param name="b">A set of elements.</param>
399             <returns>The intersection of the two input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
400         </member>
401         <member name="M:Iesi.Collections.Generic.Set`1.Minus(Iesi.Collections.Generic.ISet{`0})">
402             <summary>
403             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
404             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
405             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
406             of this <c>Set</c> containing the elements from the operation.
407             </summary>
408             <param name="a">A set of elements.</param>
409             <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
410         </member>
411         <member name="M:Iesi.Collections.Generic.Set`1.Minus(Iesi.Collections.Generic.ISet{`0},Iesi.Collections.Generic.ISet{`0})">
412             <summary>
413             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
414             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
415             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
416             of set <c>a</c> containing the elements from the operation. 
417             </summary>
418             <param name="a">A set of elements.</param>
419             <param name="b">A set of elements.</param>
420             <returns>A set containing <c>A - B</c> elements.  <see langword="null" /> if <c>a</c> is <see langword="null" />.</returns>
421         </member>
422         <member name="M:Iesi.Collections.Generic.Set`1.op_Subtraction(Iesi.Collections.Generic.Set{`0},Iesi.Collections.Generic.Set{`0})">
423             <summary>
424             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
425             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
426             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
427             of set <c>a</c> containing the elements from the operation. 
428             </summary>
429             <param name="a">A set of elements.</param>
430             <param name="b">A set of elements.</param>
431             <returns>A set containing <c>A - B</c> elements.  <see langword="null" /> if <c>a</c> is <see langword="null" />.</returns>
432         </member>
433         <member name="M:Iesi.Collections.Generic.Set`1.ExclusiveOr(Iesi.Collections.Generic.ISet{`0})">
434             <summary>
435             Performs an "exclusive-or" of the two sets, keeping only the elements that
436             are in one of the sets, but not in both.  The original sets are not modified
437             during this operation.  The result set is a <c>Clone()</c> of this set containing
438             the elements from the exclusive-or operation.
439             </summary>
440             <param name="a">A set of elements.</param>
441             <returns>A set containing the result of <c>a ^ b</c>.</returns>
442         </member>
443         <member name="M:Iesi.Collections.Generic.Set`1.ExclusiveOr(Iesi.Collections.Generic.ISet{`0},Iesi.Collections.Generic.ISet{`0})">
444             <summary>
445             Performs an "exclusive-or" of the two sets, keeping only the elements that
446             are in one of the sets, but not in both.  The original sets are not modified
447             during this operation.  The result set is a <c>Clone()</c> of one of the sets
448             (<c>a</c> if it is not <see langword="null" />) containing
449             the elements from the exclusive-or operation.
450             </summary>
451             <param name="a">A set of elements.</param>
452             <param name="b">A set of elements.</param>
453             <returns>A set containing the result of <c>a ^ b</c>.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
454         </member>
455         <member name="M:Iesi.Collections.Generic.Set`1.op_ExclusiveOr(Iesi.Collections.Generic.Set{`0},Iesi.Collections.Generic.Set{`0})">
456             <summary>
457             Performs an "exclusive-or" of the two sets, keeping only the elements that
458             are in one of the sets, but not in both.  The original sets are not modified
459             during this operation.  The result set is a <c>Clone()</c> of one of the sets
460             (<c>a</c> if it is not <see langword="null" />) containing
461             the elements from the exclusive-or operation.
462             </summary>
463             <param name="a">A set of elements.</param>
464             <param name="b">A set of elements.</param>
465             <returns>A set containing the result of <c>a ^ b</c>.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
466         </member>
467         <member name="M:Iesi.Collections.Generic.Set`1.Add(`0)">
468             <summary>
469             Adds the specified element to this set if it is not already present.
470             </summary>
471             <param name="o">The object to add to the set.</param>
472             <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
473         </member>
474         <member name="M:Iesi.Collections.Generic.Set`1.AddAll(System.Collections.Generic.ICollection{`0})">
475             <summary>
476             Adds all the elements in the specified collection to the set if they are not already present.
477             </summary>
478             <param name="c">A collection of objects to add to the set.</param>
479             <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
480         </member>
481         <member name="M:Iesi.Collections.Generic.Set`1.Clear">
482             <summary>
483             Removes all objects from the set.
484             </summary>
485         </member>
486         <member name="M:Iesi.Collections.Generic.Set`1.Contains(`0)">
487             <summary>
488             Returns <see langword="true" /> if this set contains the specified element.
489             </summary>
490             <param name="o">The element to look for.</param>
491             <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
492         </member>
493         <member name="M:Iesi.Collections.Generic.Set`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
494             <summary>
495             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
496             </summary>
497             <param name="c">A collection of objects.</param>
498             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
499         </member>
500         <member name="M:Iesi.Collections.Generic.Set`1.Remove(`0)">
501             <summary>
502             Removes the specified element from the set.
503             </summary>
504             <param name="o">The element to be removed.</param>
505             <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
506         </member>
507         <member name="M:Iesi.Collections.Generic.Set`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
508             <summary>
509             Remove all the specified elements from this set, if they exist in this set.
510             </summary>
511             <param name="c">A collection of elements to remove.</param>
512             <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
513         </member>
514         <member name="M:Iesi.Collections.Generic.Set`1.RetainAll(System.Collections.Generic.ICollection{`0})">
515             <summary>
516             Retains only the elements in this set that are contained in the specified collection.
517             </summary>
518             <param name="c">Collection that defines the set of elements to be retained.</param>
519             <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
520         </member>
521         <member name="M:Iesi.Collections.Generic.Set`1.Clone">
522             <summary>
523             Returns a clone of the <c>Set</c> instance.  This will work for derived <c>Set</c>
524             classes if the derived class implements a constructor that takes no arguments.
525             </summary>
526             <returns>A clone of this object.</returns>
527         </member>
528         <member name="M:Iesi.Collections.Generic.Set`1.CopyTo(`0[],System.Int32)">
529             <summary>
530             Copies the elements in the <c>Set</c> to an array.  The type of array needs
531             to be compatible with the objects in the <c>Set</c>, obviously.
532             </summary>
533             <param name="array">An array that will be the target of the copy operation.</param>
534             <param name="index">The zero-based index where copying will start.</param>
535         </member>
536         <member name="M:Iesi.Collections.Generic.Set`1.GetEnumerator">
537             <summary>
538             Gets an enumerator for the elements in the <c>Set</c>.
539             </summary>
540             <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
541         </member>
542         <member name="M:Iesi.Collections.Generic.Set`1.NonGenericCopyTo(System.Array,System.Int32)">
543             <summary>
544             Performs CopyTo when called trhough non-generic ISet (ICollection) interface
545             </summary>
546             <param name="array"></param>
547             <param name="index"></param>
548         </member>
549         <member name="M:Iesi.Collections.Generic.Set`1.NonGenericUnion(Iesi.Collections.ISet)">
550             <summary>
551             Performs Union when called trhough non-generic ISet interface
552             </summary>
553             <param name="a"></param>
554             <returns></returns>
555         </member>
556         <member name="M:Iesi.Collections.Generic.Set`1.NonGenericMinus(Iesi.Collections.ISet)">
557             <summary>
558             Performs Minus when called trhough non-generic ISet interface
559             </summary>
560             <param name="a"></param>
561             <returns></returns>
562         </member>
563         <member name="M:Iesi.Collections.Generic.Set`1.NonGenericIntersect(Iesi.Collections.ISet)">
564             <summary>
565             Performs Intersect when called trhough non-generic ISet interface
566             </summary>
567             <param name="a"></param>
568             <returns></returns>
569         </member>
570         <member name="M:Iesi.Collections.Generic.Set`1.NonGenericExclusiveOr(Iesi.Collections.ISet)">
571             <summary>
572             Performs ExclusiveOr when called trhough non-generic ISet interface
573             </summary>
574             <param name="a"></param>
575             <returns></returns>
576         </member>
577         <member name="P:Iesi.Collections.Generic.Set`1.IsEmpty">
578             <summary>
579             Returns <see langword="true" /> if this set contains no elements.
580             </summary>
581         </member>
582         <member name="P:Iesi.Collections.Generic.Set`1.Count">
583             <summary>
584             The number of elements currently contained in this collection.
585             </summary>
586         </member>
587         <member name="P:Iesi.Collections.Generic.Set`1.IsSynchronized">
588             <summary>
589             Returns <see langword="true" /> if the <c>Set</c> is synchronized across threads.  Note that
590             enumeration is inherently not thread-safe.  Use the <c>SyncRoot</c> to lock the
591             object during enumeration.
592             </summary>
593         </member>
594         <member name="P:Iesi.Collections.Generic.Set`1.SyncRoot">
595             <summary>
596             An object that can be used to synchronize this collection to make it thread-safe.
597             When implementing this, if your object uses a base object, like an <c>IDictionary</c>,
598             or anything that has a <c>SyncRoot</c>, return that object instead of "<c>this</c>".
599             </summary>
600         </member>
601         <member name="P:Iesi.Collections.Generic.Set`1.IsReadOnly">
602             <summary>
603             Indicates whether the given instance is read-only or not
604             </summary>
605             <value>
606             <see langword="true" /> if the ISet is read-only; otherwise, <see langword="false" />. 
607             In the default implementation of Set, this property always returns false. 
608             </value>
609         </member>
610         <member name="F:Iesi.Collections.Generic.DictionarySet`1.InternalDictionary">
611             <summary>
612             Provides the storage for elements in the <c>Set</c>, stored as the key-set
613             of the <c>IDictionary</c> object.  Set this object in the constructor
614             if you create your own <c>Set</c> class.  
615             </summary>
616         </member>
617         <member name="M:Iesi.Collections.Generic.DictionarySet`1.Add(`0)">
618             <summary>
619             Adds the specified element to this set if it is not already present.
620             </summary>
621             <param name="o">The <typeparamref name="T"/> to add to the set.</param>
622             <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
623         </member>
624         <member name="M:Iesi.Collections.Generic.DictionarySet`1.AddAll(System.Collections.Generic.ICollection{`0})">
625             <summary>
626             Adds all the elements in the specified collection to the set if they are not already present.
627             </summary>
628             <param name="c">A collection of objects to add to the set.</param>
629             <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
630         </member>
631         <member name="M:Iesi.Collections.Generic.DictionarySet`1.Clear">
632             <summary>
633             Removes all objects from the set.
634             </summary>
635         </member>
636         <member name="M:Iesi.Collections.Generic.DictionarySet`1.Contains(`0)">
637             <summary>
638             Returns <see langword="true" /> if this set contains the specified element.
639             </summary>
640             <param name="o">The element to look for.</param>
641             <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
642         </member>
643         <member name="M:Iesi.Collections.Generic.DictionarySet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
644             <summary>
645             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
646             </summary>
647             <param name="c">A collection of objects.</param>
648             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
649         </member>
650         <member name="M:Iesi.Collections.Generic.DictionarySet`1.Remove(`0)">
651             <summary>
652             Removes the specified element from the set.
653             </summary>
654             <param name="o">The element to be removed.</param>
655             <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
656         </member>
657         <member name="M:Iesi.Collections.Generic.DictionarySet`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
658             <summary>
659             Remove all the specified elements from this set, if they exist in this set.
660             </summary>
661             <param name="c">A collection of elements to remove.</param>
662             <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
663         </member>
664         <member name="M:Iesi.Collections.Generic.DictionarySet`1.RetainAll(System.Collections.Generic.ICollection{`0})">
665             <summary>
666             Retains only the elements in this set that are contained in the specified collection.
667             </summary>
668             <param name="c">Collection that defines the set of elements to be retained.</param>
669             <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
670         </member>
671         <member name="M:Iesi.Collections.Generic.DictionarySet`1.CopyTo(`0[],System.Int32)">
672             <summary>
673             Copies the elements in the <c>Set</c> to an array of T.  The type of array needs
674             to be compatible with the objects in the <c>Set</c>, obviously.
675             </summary>
676             <param name="array">An array that will be the target of the copy operation.</param>
677             <param name="index">The zero-based index where copying will start.</param>
678         </member>
679         <member name="M:Iesi.Collections.Generic.DictionarySet`1.GetEnumerator">
680             <summary>
681             Gets an enumerator for the elements in the <c>Set</c>.
682             </summary>
683             <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
684         </member>
685         <member name="M:Iesi.Collections.Generic.DictionarySet`1.NonGenericCopyTo(System.Array,System.Int32)">
686             <summary>
687             Copies the elements in the <c>Set</c> to an array.  The type of array needs
688             to be compatible with the objects in the <c>Set</c>, obviously. Needed for 
689             non-generic ISet methods implementation
690             </summary>
691             <param name="array">An array that will be the target of the copy operation.</param>
692             <param name="index">The zero-based index where copying will start.</param>
693         </member>
694         <member name="P:Iesi.Collections.Generic.DictionarySet`1.Placeholder">
695             <summary>
696             The placeholder object used as the value for the <c>IDictionary</c> instance.
697             </summary>
698             <remarks>
699             There is a single instance of this object globally, used for all <c>Sets</c>.
700             </remarks>
701         </member>
702         <member name="P:Iesi.Collections.Generic.DictionarySet`1.IsEmpty">
703             <summary>
704             Returns <see langword="true" /> if this set contains no elements.
705             </summary>
706         </member>
707         <member name="P:Iesi.Collections.Generic.DictionarySet`1.Count">
708             <summary>
709             The number of elements contained in this collection.
710             </summary>
711         </member>
712         <member name="P:Iesi.Collections.Generic.DictionarySet`1.IsSynchronized">
713             <summary>
714             None of the objects based on <c>DictionarySet</c> are synchronized.  Use the
715             <c>SyncRoot</c> property instead.
716             </summary>
717         </member>
718         <member name="P:Iesi.Collections.Generic.DictionarySet`1.SyncRoot">
719             <summary>
720             Returns an object that can be used to synchronize the <c>Set</c> between threads.
721             </summary>
722         </member>
723         <member name="P:Iesi.Collections.Generic.DictionarySet`1.IsReadOnly">
724             <summary>
725             Indicates wether the <c>Set</c> is read-only or not
726             </summary>
727         </member>
728         <member name="T:Iesi.Collections.Generic.HashedSet`1">
729             <summary>
730             Implements a <c>Set</c> based on a Dictionary (which is equivalent of 
731             non-genric <c>HashTable</c>) This will give the best lookup, add, and remove
732             performance for very large data-sets, but iteration will occur in no particular order.
733             </summary>
734         </member>
735         <member name="M:Iesi.Collections.Generic.HashedSet`1.#ctor">
736             <summary>
737             Creates a new set instance based on a Dictinary.
738             </summary>
739         </member>
740         <member name="M:Iesi.Collections.Generic.HashedSet`1.#ctor(System.Collections.Generic.ICollection{`0})">
741             <summary>
742             Creates a new set instance based on a Dictinary and
743             initializes it based on a collection of elements.
744             </summary>
745             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
746         </member>
747         <member name="T:Iesi.Collections.Generic.ImmutableSet`1">
748             <summary>
749             <p>Implements an immutable (read-only) <c>Set</c> wrapper.</p>
750             <p>Although this is advertised as immutable, it really isn't.  Anyone with access to the
751             <c>basisSet</c> can still change the data-set.  So <c>GetHashCode()</c> is not implemented
752             for this <c>Set</c>, as is the case for all <c>Set</c> implementations in this library.
753             This design decision was based on the efficiency of not having to <c>Clone()</c> the 
754             <c>basisSet</c> every time you wrap a mutable <c>Set</c>.</p>
755             </summary>
756         </member>
757         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.#ctor(Iesi.Collections.Generic.ISet{`0})">
758             <summary>
759             Constructs an immutable (read-only) <c>Set</c> wrapper.
760             </summary>
761             <param name="basisSet">The <c>Set</c> that is wrapped.</param>
762         </member>
763         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Add(`0)">
764             <summary>
765             Adds the specified element to this set if it is not already present.
766             </summary>
767             <param name="o">The object to add to the set.</param>
768             <returns>nothing</returns>
769             <exception cref="T:System.NotSupportedException"> is always thrown</exception>
770         </member>
771         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.AddAll(System.Collections.Generic.ICollection{`0})">
772             <summary>
773             Adds all the elements in the specified collection to the set if they are not already present.
774             </summary>
775             <param name="c">A collection of objects to add to the set.</param>
776             <returns>nothing</returns>
777             <exception cref="T:System.NotSupportedException"> is always thrown</exception>
778         </member>
779         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Clear">
780             <summary>
781             Removes all objects from the set.
782             </summary>
783             <exception cref="T:System.NotSupportedException"> is always thrown</exception>
784         </member>
785         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Contains(`0)">
786             <summary>
787             Returns <see langword="true" /> if this set contains the specified element.
788             </summary>
789             <param name="o">The element to look for.</param>
790             <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
791         </member>
792         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
793             <summary>
794             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
795             </summary>
796             <param name="c">A collection of objects.</param>
797             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
798         </member>
799         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Remove(`0)">
800             <summary>
801             Removes the specified element from the set.
802             </summary>
803             <param name="o">The element to be removed.</param>
804             <returns>nothing</returns>
805             <exception cref="T:System.NotSupportedException"> is always thrown</exception>
806         </member>
807         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
808             <summary>
809             Remove all the specified elements from this set, if they exist in this set.
810             </summary>
811             <param name="c">A collection of elements to remove.</param>
812             <returns>nothing</returns>
813             <exception cref="T:System.NotSupportedException"> is always thrown</exception>
814         </member>
815         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.RetainAll(System.Collections.Generic.ICollection{`0})">
816             <summary>
817             Retains only the elements in this set that are contained in the specified collection.
818             </summary>
819             <param name="c">Collection that defines the set of elements to be retained.</param>
820             <returns>nothing</returns>
821             <exception cref="T:System.NotSupportedException"> is always thrown</exception>
822         </member>
823         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.CopyTo(`0[],System.Int32)">
824             <summary>
825             Copies the elements in the <c>Set</c> to an array of T. The type of array needs
826             to be compatible with the objects in the <c>Set</c>, obviously.
827             </summary>
828             <param name="array">An array that will be the target of the copy operation.</param>
829             <param name="index">The zero-based index where copying will start.</param>
830         </member>
831         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.GetEnumerator">
832             <summary>
833             Gets an enumerator for the elements in the <c>Set</c>.
834             </summary>
835             <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
836         </member>
837         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Clone">
838             <summary>
839             Returns a clone of the <c>Set</c> instance.  
840             </summary>
841             <returns>A clone of this object.</returns>
842         </member>
843         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Union(Iesi.Collections.Generic.ISet{`0})">
844             <summary>
845             Performs a "union" of the two sets, where all the elements
846             in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
847             Neither this set nor the input set are modified during the operation.  The return value
848             is a <c>Clone()</c> of this set with the extra elements added in.
849             </summary>
850             <param name="a">A collection of elements.</param>
851             <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
852             Neither of the input objects is modified by the union.</returns>
853         </member>
854         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Intersect(Iesi.Collections.Generic.ISet{`0})">
855             <summary>
856             Performs an "intersection" of the two sets, where only the elements
857             that are present in both sets remain.  That is, the element is included if it exists in
858             both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
859             a <c>Clone()</c> of this set with the appropriate elements removed.
860             </summary>
861             <param name="a">A set of elements.</param>
862             <returns>The intersection of this set with <c>a</c>.</returns>
863         </member>
864         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Minus(Iesi.Collections.Generic.ISet{`0})">
865             <summary>
866             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
867             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
868             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
869             of this <c>Set</c> containing the elements from the operation.
870             </summary>
871             <param name="a">A set of elements.</param>
872             <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
873         </member>
874         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.ExclusiveOr(Iesi.Collections.Generic.ISet{`0})">
875             <summary>
876             Performs an "exclusive-or" of the two sets, keeping only the elements that
877             are in one of the sets, but not in both.  The original sets are not modified
878             during this operation.  The result set is a <c>Clone()</c> of this set containing
879             the elements from the exclusive-or operation.
880             </summary>
881             <param name="a">A set of elements.</param>
882             <returns>A set containing the result of <c>a ^ b</c>.</returns>
883         </member>
884         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericCopyTo(System.Array,System.Int32)">
885             <summary>
886             Performs CopyTo when called trhough non-generic ISet (ICollection) interface
887             </summary>
888             <param name="array"></param>
889             <param name="index"></param>
890         </member>
891         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericUnion(Iesi.Collections.ISet)">
892             <summary>
893             Performs Union when called trhough non-generic ISet interface
894             </summary>
895             <param name="a"></param>
896             <returns></returns>
897         </member>
898         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericMinus(Iesi.Collections.ISet)">
899             <summary>
900             Performs Minus when called trhough non-generic ISet interface
901             </summary>
902             <param name="a"></param>
903             <returns></returns>
904         </member>
905         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericIntersect(Iesi.Collections.ISet)">
906             <summary>
907             Performs Intersect when called trhough non-generic ISet interface
908             </summary>
909             <param name="a"></param>
910             <returns></returns>
911         </member>
912         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericExclusiveOr(Iesi.Collections.ISet)">
913             <summary>
914             Performs ExclusiveOr when called trhough non-generic ISet interface
915             </summary>
916             <param name="a"></param>
917             <returns></returns>
918         </member>
919         <member name="P:Iesi.Collections.Generic.ImmutableSet`1.IsEmpty">
920             <summary>
921             Returns <see langword="true" /> if this set contains no elements.
922             </summary>
923         </member>
924         <member name="P:Iesi.Collections.Generic.ImmutableSet`1.Count">
925             <summary>
926             The number of elements contained in this collection.
927             </summary>
928         </member>
929         <member name="P:Iesi.Collections.Generic.ImmutableSet`1.IsSynchronized">
930             <summary>
931             Returns an object that can be used to synchronize use of the <c>Set</c> across threads.
932             </summary>
933         </member>
934         <member name="P:Iesi.Collections.Generic.ImmutableSet`1.SyncRoot">
935             <summary>
936             Returns an object that can be used to synchronize the <c>Set</c> between threads.
937             </summary>
938         </member>
939         <member name="P:Iesi.Collections.Generic.ImmutableSet`1.IsReadOnly">
940             <summary>
941             Indicates that the given instance is read-only
942             </summary>
943         </member>
944         <member name="T:Iesi.Collections.Generic.SortedSet`1">
945             <summary>
946             Implements a <c>Set</c> based on a sorted tree.  This gives good performance for operations on very
947             large data-sets, though not as good - asymptotically - as a <c>HashedSet</c>.  However, iteration
948             occurs in order.  Elements that you put into this type of collection must implement <c>IComparable</c>,
949             and they must actually be comparable.  You can't mix <c>string</c> and <c>int</c> values, for example.
950             </summary>
951         </member>
952         <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor">
953             <summary>
954             Creates a new set instance based on a sorted tree.
955             </summary>
956         </member>
957         <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor(System.Collections.Generic.IComparer{`0})">
958             <summary>
959             Creates a new set instance based on a sorted tree.
960             </summary>
961             <param name="comparer">The <see cref="T:System.Collections.Generic.IComparer`1"/> to use for sorting.</param>
962         </member>
963         <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor(System.Collections.Generic.ICollection{`0})">
964             <summary>
965             Creates a new set instance based on a sorted tree and
966             initializes it based on a collection of elements.
967             </summary>
968             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
969         </member>
970         <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor(System.Collections.ICollection)">
971             <summary>
972             Creates a new set instance based on a sorted tree and
973             initializes it based on a collection of elements.
974             </summary>
975             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
976         </member>
977         <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor(System.Collections.Generic.ICollection{`0},System.Collections.Generic.IComparer{`0})">
978             <summary>
979             Creates a new set instance based on a sorted tree and
980             initializes it based on a collection of elements.
981             </summary>
982             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
983             <param name="comparer">The <see cref="T:System.Collections.Generic.IComparer`1"/> to use for sorting.</param>
984         </member>
985         <member name="T:Iesi.Collections.Generic.SynchronizedSet`1">
986             <summary>
987             <p>Implements a thread-safe <c>Set</c> wrapper.  The implementation is extremely conservative, 
988             serializing critical sections to prevent possible deadlocks, and locking on everything.
989             The one exception is for enumeration, which is inherently not thread-safe.  For this, you
990             have to <c>lock</c> the <c>SyncRoot</c> object for the duration of the enumeration.</p>
991             </summary>
992         </member>
993         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.#ctor(Iesi.Collections.Generic.ISet{`0})">
994             <summary>
995             Constructs a thread-safe <c>Set</c> wrapper.
996             </summary>
997             <param name="basisSet">The <c>Set</c> object that this object will wrap.</param>
998         </member>
999         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Add(`0)">
1000             <summary>
1001             Adds the specified element to this set if it is not already present.
1002             </summary>
1003             <param name="o">The object to add to the set.</param>
1004             <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1005         </member>
1006         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.AddAll(System.Collections.Generic.ICollection{`0})">
1007             <summary>
1008             Adds all the elements in the specified collection to the set if they are not already present.
1009             </summary>
1010             <param name="c">A collection of objects to add to the set.</param>
1011             <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1012         </member>
1013         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Clear">
1014             <summary>
1015             Removes all objects from the set.
1016             </summary>
1017         </member>
1018         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Contains(`0)">
1019             <summary>
1020             Returns <see langword="true" /> if this set contains the specified element.
1021             </summary>
1022             <param name="o">The element to look for.</param>
1023             <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1024         </member>
1025         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
1026             <summary>
1027             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1028             </summary>
1029             <param name="c">A collection of objects.</param>
1030             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1031         </member>
1032         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Remove(`0)">
1033             <summary>
1034             Removes the specified element from the set.
1035             </summary>
1036             <param name="o">The element to be removed.</param>
1037             <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1038         </member>
1039         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
1040             <summary>
1041             Remove all the specified elements from this set, if they exist in this set.
1042             </summary>
1043             <param name="c">A collection of elements to remove.</param>
1044             <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1045         </member>
1046         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.RetainAll(System.Collections.Generic.ICollection{`0})">
1047             <summary>
1048             Retains only the elements in this set that are contained in the specified collection.
1049             </summary>
1050             <param name="c">Collection that defines the set of elements to be retained.</param>
1051             <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1052         </member>
1053         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.CopyTo(`0[],System.Int32)">
1054             <summary>
1055             Copies the elements in the <c>Set</c> to an array.  The type of array needs
1056             to be compatible with the objects in the <c>Set</c>, obviously.
1057             </summary>
1058             <param name="array">An array that will be the target of the copy operation.</param>
1059             <param name="index">The zero-based index where copying will start.</param>
1060         </member>
1061         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.GetEnumerator">
1062             <summary>
1063             Enumeration is, by definition, not thread-safe.  Use a <c>lock</c> on the <c>SyncRoot</c> 
1064             to synchronize the entire enumeration process.
1065             </summary>
1066             <returns></returns>
1067         </member>
1068         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Clone">
1069             <summary>
1070             Returns a clone of the <c>Set</c> instance.  
1071             </summary>
1072             <returns>A clone of this object.</returns>
1073         </member>
1074         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.NonGenericCopyTo(System.Array,System.Int32)">
1075             <summary>
1076             Performs CopyTo when called trhough non-generic ISet (ICollection) interface
1077             </summary>
1078             <param name="array"></param>
1079             <param name="index"></param>
1080         </member>
1081         <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsEmpty">
1082             <summary>
1083             Returns <see langword="true" /> if this set contains no elements.
1084             </summary>
1085         </member>
1086         <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.Count">
1087             <summary>
1088             The number of elements contained in this collection.
1089             </summary>
1090         </member>
1091         <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsSynchronized">
1092             <summary>
1093             Returns <see langword="true" />, indicating that this object is thread-safe.  The exception to this
1094             is enumeration, which is inherently not thread-safe.  Use the <c>SyncRoot</c> object to
1095             lock this object for the entire duration of the enumeration.
1096             </summary>
1097         </member>
1098         <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.SyncRoot">
1099             <summary>
1100             Returns an object that can be used to synchronize the <c>Set</c> between threads.
1101             </summary>
1102         </member>
1103         <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsReadOnly">
1104             <summary>
1105             Indicates whether given instace is read-only or not
1106             </summary>
1107         </member>
1108         <member name="T:Iesi.Collections.DictionarySet">
1109              <summary>
1110              <p><c>DictionarySet</c> is an abstract class that supports the creation of new <c>Set</c>
1111              types where the underlying data store is an <c>IDictionary</c> instance.</p> 
1112               
1113              <p>You can use any object that implements the <c>IDictionary</c> interface to hold set data.
1114              You can define your own, or you can use one of the objects provided in the Framework.   
1115              The type of <c>IDictionary</c> you choose will affect both the performance and the behavior
1116              of the <c>Set</c> using it. </p>
1117             
1118              <p>To make a <c>Set</c> typed based on your own <c>IDictionary</c>, simply derive a
1119              new class with a constructor that takes no parameters.  Some <c>Set</c> implmentations
1120              cannot be defined with a default constructor.  If this is the case for your class, 
1121              you will need to override <c>Clone()</c> as well.</p>
1122             
1123              <p>It is also standard practice that at least one of your constructors takes an <c>ICollection</c> or 
1124              an <c>ISet</c> as an argument.</p>
1125              </summary>
1126         </member>
1127         <member name="T:Iesi.Collections.Set">
1128             <summary>A collection that contains no duplicate elements.</summary>
1129             <remarks>
1130             <para>
1131             This class models the mathematical set abstraction, and is the base class for all
1132             other set implementations. The order of elements in a set is dependant on
1133             (a) the data-structure implementation, and (b) the implementation of the various
1134             methods, and thus is not guaranteed.
1135             </para>
1136             <para>
1137             None of the <see cref="T:Iesi.Collections.ISet"/> implementations in this library are guranteed to be thread-safe
1138             in any way unless wrapped in a <see cref="T:Iesi.Collections.SynchronizedSet"/>.
1139             </para>
1140              <para>
1141             The following table summarizes the binary operators that are supported by the <see cref="T:Iesi.Collections.ISet"/>
1142             type.
1143             </para>
1144             <list type="table">
1145                 <listheader>
1146                         <term>Operation</term>
1147                         <term>Description</term>
1148                         <term>Method</term>
1149                         <term>Operator</term>
1150                 </listheader>
1151                 <item>
1152                         <term>Union (OR)</term>
1153                         <term>Element included in result if it exists in either <c>A</c> OR <c>B</c>.</term>
1154                         <term><c>Union()</c></term>
1155                         <term><c>|</c></term>
1156                 </item>
1157                 <item>
1158                         <term>Intersection (AND)</term>
1159                         <term>Element included in result if it exists in both <c>A</c> AND <c>B</c>.</term>
1160                         <term><c>InterSect()</c></term>
1161                         <term><c>&amp;</c></term>
1162                 </item>
1163                 <item>
1164                         <term>Exclusive Or (XOR)</term>
1165                         <term>Element included in result if it exists in one, but not both, of <c>A</c> and <c>B</c>.</term>
1166                         <term><c>ExclusiveOr()</c></term>
1167                         <term><c>^</c></term>
1168                 </item>
1169                 <item>
1170                         <term>Minus (n/a)</term>
1171                         <term>Take all the elements in <c>A</c>.  Now, if any of them exist in <c>B</c>, remove
1172                         them.  Note that unlike the other operators, <c>A - B</c> is not the same as <c>B - A</c>.</term>
1173                         <term><c>Minus()</c></term>
1174                         <term><c>-</c></term>
1175                 </item>
1176             </list>
1177             </remarks>
1178         </member>
1179         <member name="M:Iesi.Collections.Set.Union(Iesi.Collections.ISet)">
1180             <summary>
1181             Performs a "union" of the two sets, where all the elements
1182             in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1183             Neither this set nor the input set are modified during the operation.  The return value
1184             is a clone of this set with the extra elements added in.
1185             </summary>
1186             <param name="a">A collection of elements.</param>
1187             <returns>A new <see cref="T:Iesi.Collections.ISet"/> instance containing the union of this instance with the specified collection.
1188             Neither of the input objects is modified by the union.</returns>
1189         </member>
1190         <member name="M:Iesi.Collections.Set.Union(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1191             <summary>
1192             Performs a "union" of two sets, where all the elements
1193             in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1194             The return value is a clone of one of the sets (<c>a</c> if it is not <see langword="null" />) with elements of the other set
1195             added in.  Neither of the input sets is modified by the operation.
1196             </summary>
1197             <param name="a">A set of elements.</param>
1198             <param name="b">A set of elements.</param>
1199             <returns>A set containing the union of the input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1200         </member>
1201         <member name="M:Iesi.Collections.Set.op_BitwiseOr(Iesi.Collections.Set,Iesi.Collections.Set)">
1202             <summary>
1203             Performs a "union" of two sets, where all the elements
1204             in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1205             The return value is a clone of one of the sets (<c>a</c> if it is not <see langword="null" />) with elements of the other set
1206             added in.  Neither of the input sets is modified by the operation.
1207             </summary>
1208             <param name="a">A set of elements.</param>
1209             <param name="b">A set of elements.</param>
1210             <returns>A set containing the union of the input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1211         </member>
1212         <member name="M:Iesi.Collections.Set.Intersect(Iesi.Collections.ISet)">
1213             <summary>
1214             Performs an "intersection" of the two sets, where only the elements
1215             that are present in both sets remain.  That is, the element is included if it exists in
1216             both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
1217             a <c>Clone()</c> of this set with the appropriate elements removed.
1218             </summary>
1219             <param name="a">A set of elements.</param>
1220             <returns>The intersection of this set with <c>a</c>.</returns>
1221         </member>
1222         <member name="M:Iesi.Collections.Set.Intersect(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1223             <summary>
1224             Performs an "intersection" of the two sets, where only the elements
1225             that are present in both sets remain.  That is, the element is included only if it exists in
1226             both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
1227             The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <see langword="null" />) containing the
1228             elements from the intersect operation. 
1229             </summary>
1230             <param name="a">A set of elements.</param>
1231             <param name="b">A set of elements.</param>
1232             <returns>The intersection of the two input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1233         </member>
1234         <member name="M:Iesi.Collections.Set.op_BitwiseAnd(Iesi.Collections.Set,Iesi.Collections.Set)">
1235             <summary>
1236             Performs an "intersection" of the two sets, where only the elements
1237             that are present in both sets remain.  That is, the element is included only if it exists in
1238             both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
1239             The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <see langword="null" />) containing the
1240             elements from the intersect operation. 
1241             </summary>
1242             <param name="a">A set of elements.</param>
1243             <param name="b">A set of elements.</param>
1244             <returns>The intersection of the two input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1245         </member>
1246         <member name="M:Iesi.Collections.Set.Minus(Iesi.Collections.ISet)">
1247             <summary>
1248             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1249             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1250             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1251             of this <c>Set</c> containing the elements from the operation.
1252             </summary>
1253             <param name="a">A set of elements.</param>
1254             <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
1255         </member>
1256         <member name="M:Iesi.Collections.Set.Minus(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1257             <summary>
1258             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1259             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1260             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1261             of set <c>a</c> containing the elements from the operation. 
1262             </summary>
1263             <param name="a">A set of elements.</param>
1264             <param name="b">A set of elements.</param>
1265             <returns>A set containing <c>A - B</c> elements.  <see langword="null" /> if <c>a</c> is <see langword="null" />.</returns>
1266         </member>
1267         <member name="M:Iesi.Collections.Set.op_Subtraction(Iesi.Collections.Set,Iesi.Collections.Set)">
1268             <summary>
1269             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1270             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1271             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1272             of set <c>a</c> containing the elements from the operation. 
1273             </summary>
1274             <param name="a">A set of elements.</param>
1275             <param name="b">A set of elements.</param>
1276             <returns>A set containing <c>A - B</c> elements.  <see langword="null" /> if <c>a</c> is <see langword="null" />.</returns>
1277         </member>
1278         <member name="M:Iesi.Collections.Set.ExclusiveOr(Iesi.Collections.ISet)">
1279             <summary>
1280             Performs an "exclusive-or" of the two sets, keeping only the elements that
1281             are in one of the sets, but not in both.  The original sets are not modified
1282             during this operation.  The result set is a clone of this set containing
1283             the elements from the exclusive-or operation.
1284             </summary>
1285             <param name="a">A set of elements.</param>
1286             <returns>A set containing the result of <c>a ^ b</c>.</returns>
1287         </member>
1288         <member name="M:Iesi.Collections.Set.ExclusiveOr(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1289             <summary>
1290             Performs an "exclusive-or" of the two sets, keeping only the elements that
1291             are in one of the sets, but not in both.  The original sets are not modified
1292             during this operation.  The result set is a clone of one of the sets
1293             (<c>a</c> if it is not <see langword="null" />) containing
1294             the elements from the exclusive-or operation.
1295             </summary>
1296             <param name="a">A set of elements.</param>
1297             <param name="b">A set of elements.</param>
1298             <returns>A set containing the result of <c>a ^ b</c>.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1299         </member>
1300         <member name="M:Iesi.Collections.Set.op_ExclusiveOr(Iesi.Collections.Set,Iesi.Collections.Set)">
1301             <summary>
1302             Performs an "exclusive-or" of the two sets, keeping only the elements that
1303             are in one of the sets, but not in both.  The original sets are not modified
1304             during this operation.  The result set is a clone of one of the sets
1305             (<c>a</c> if it is not <see langword="null" />) containing
1306             the elements from the exclusive-or operation.
1307             </summary>
1308             <param name="a">A set of elements.</param>
1309             <param name="b">A set of elements.</param>
1310             <returns>A set containing the result of <c>a ^ b</c>.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1311         </member>
1312         <member name="M:Iesi.Collections.Set.Add(System.Object)">
1313             <summary>
1314             Adds the specified element to this set if it is not already present.
1315             </summary>
1316             <param name="o">The object to add to the set.</param>
1317             <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1318         </member>
1319         <member name="M:Iesi.Collections.Set.AddAll(System.Collections.ICollection)">
1320             <summary>
1321             Adds all the elements in the specified collection to the set if they are not already present.
1322             </summary>
1323             <param name="c">A collection of objects to add to the set.</param>
1324             <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1325         </member>
1326         <member name="M:Iesi.Collections.Set.Clear">
1327             <summary>
1328             Removes all objects from the set.
1329             </summary>
1330         </member>
1331         <member name="M:Iesi.Collections.Set.Contains(System.Object)">
1332             <summary>
1333             Returns <see langword="true" /> if this set contains the specified element.
1334             </summary>
1335             <param name="o">The element to look for.</param>
1336             <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1337         </member>
1338         <member name="M:Iesi.Collections.Set.ContainsAll(System.Collections.ICollection)">
1339             <summary>
1340             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1341             </summary>
1342             <param name="c">A collection of objects.</param>
1343             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1344         </member>
1345         <member name="M:Iesi.Collections.Set.Remove(System.Object)">
1346             <summary>
1347             Removes the specified element from the set.
1348             </summary>
1349             <param name="o">The element to be removed.</param>
1350             <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1351         </member>
1352         <member name="M:Iesi.Collections.Set.RemoveAll(System.Collections.ICollection)">
1353             <summary>
1354             Remove all the specified elements from this set, if they exist in this set.
1355             </summary>
1356             <param name="c">A collection of elements to remove.</param>
1357             <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1358         </member>
1359         <member name="M:Iesi.Collections.Set.RetainAll(System.Collections.ICollection)">
1360             <summary>
1361             Retains only the elements in this set that are contained in the specified collection.
1362             </summary>
1363             <param name="c">Collection that defines the set of elements to be retained.</param>
1364             <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1365         </member>
1366         <member name="M:Iesi.Collections.Set.Clone">
1367             <summary>
1368             Returns a clone of the set instance.  This will work for derived set
1369             classes if the derived class implements a constructor that takes no arguments.
1370             </summary>
1371             <returns>A clone of this object.</returns>
1372         </member>
1373         <member name="M:Iesi.Collections.Set.CopyTo(System.Array,System.Int32)">
1374             <summary>
1375             Copies the elements in the set to an array.  The type of array needs
1376             to be compatible with the objects in the set, obviously.
1377             </summary>
1378             <param name="array">An array that will be the target of the copy operation.</param>
1379             <param name="index">The zero-based index where copying will start.</param>
1380         </member>
1381         <member name="M:Iesi.Collections.Set.GetEnumerator">
1382             <summary>
1383             Returns an enumerator that iterates through the set.
1384             </summary>
1385             <returns>
1386             An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the set.
1387             </returns>
1388         </member>
1389         <member name="P:Iesi.Collections.Set.IsEmpty">
1390             <summary>
1391             Returns <see langword="true" /> if this set contains no elements.
1392             </summary>
1393         </member>
1394         <member name="P:Iesi.Collections.Set.Count">
1395             <summary>
1396             The number of elements currently contained in this collection.
1397             </summary>
1398         </member>
1399         <member name="P:Iesi.Collections.Set.IsSynchronized">
1400             <summary>
1401             Returns <see langword="true"/> if the set is synchronized across threads.  Note that
1402             enumeration is inherently not thread-safe.  Use the <see cref="P:Iesi.Collections.Set.SyncRoot"/> to lock the
1403             object during enumeration.
1404             </summary>
1405         </member>
1406         <member name="P:Iesi.Collections.Set.SyncRoot">
1407             <summary>
1408             An object that can be used to synchronize this collection to make it thread-safe.
1409             When implementing this, if your object uses a base object, like an <see cref="T:System.Collections.IDictionary"/>,
1410             or anything that has a <see cref="P:Iesi.Collections.Set.SyncRoot"/>, return that object instead
1411             of <see langword="this"/>.
1412             </summary>
1413         </member>
1414         <member name="F:Iesi.Collections.DictionarySet.InternalDictionary">
1415             <summary>
1416             Provides the storage for elements in the <c>Set</c>, stored as the key-set
1417             of the <c>IDictionary</c> object.  Set this object in the constructor
1418             if you create your own <c>Set</c> class.  
1419             </summary>
1420         </member>
1421         <member name="M:Iesi.Collections.DictionarySet.Add(System.Object)">
1422             <summary>
1423             Adds the specified element to this set if it is not already present.
1424             </summary>
1425             <param name="o">The object to add to the set.</param>
1426             <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1427         </member>
1428         <member name="M:Iesi.Collections.DictionarySet.AddAll(System.Collections.ICollection)">
1429             <summary>
1430             Adds all the elements in the specified collection to the set if they are not already present.
1431             </summary>
1432             <param name="c">A collection of objects to add to the set.</param>
1433             <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1434         </member>
1435         <member name="M:Iesi.Collections.DictionarySet.Clear">
1436             <summary>
1437             Removes all objects from the set.
1438             </summary>
1439         </member>
1440         <member name="M:Iesi.Collections.DictionarySet.Contains(System.Object)">
1441             <summary>
1442             Returns <see langword="true" /> if this set contains the specified element.
1443             </summary>
1444             <param name="o">The element to look for.</param>
1445             <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1446         </member>
1447         <member name="M:Iesi.Collections.DictionarySet.ContainsAll(System.Collections.ICollection)">
1448             <summary>
1449             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1450             </summary>
1451             <param name="c">A collection of objects.</param>
1452             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1453         </member>
1454         <member name="M:Iesi.Collections.DictionarySet.Remove(System.Object)">
1455             <summary>
1456             Removes the specified element from the set.
1457             </summary>
1458             <param name="o">The element to be removed.</param>
1459             <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1460         </member>
1461         <member name="M:Iesi.Collections.DictionarySet.RemoveAll(System.Collections.ICollection)">
1462             <summary>
1463             Remove all the specified elements from this set, if they exist in this set.
1464             </summary>
1465             <param name="c">A collection of elements to remove.</param>
1466             <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1467         </member>
1468         <member name="M:Iesi.Collections.DictionarySet.RetainAll(System.Collections.ICollection)">
1469             <summary>
1470             Retains only the elements in this set that are contained in the specified collection.
1471             </summary>
1472             <param name="c">Collection that defines the set of elements to be retained.</param>
1473             <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1474         </member>
1475         <member name="M:Iesi.Collections.DictionarySet.CopyTo(System.Array,System.Int32)">
1476             <summary>
1477             Copies the elements in the <c>Set</c> to an array.  The type of array needs
1478             to be compatible with the objects in the <c>Set</c>, obviously.
1479             </summary>
1480             <param name="array">An array that will be the target of the copy operation.</param>
1481             <param name="index">The zero-based index where copying will start.</param>
1482         </member>
1483         <member name="M:Iesi.Collections.DictionarySet.GetEnumerator">
1484             <summary>
1485             Gets an enumerator for the elements in the <c>Set</c>.
1486             </summary>
1487             <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
1488         </member>
1489         <member name="P:Iesi.Collections.DictionarySet.Placeholder">
1490             <summary>
1491             The placeholder object used as the value for the <c>IDictionary</c> instance.
1492             </summary>
1493             <remarks>
1494             There is a single instance of this object globally, used for all <c>Sets</c>.
1495             </remarks>
1496         </member>
1497         <member name="P:Iesi.Collections.DictionarySet.IsEmpty">
1498             <summary>
1499             Returns <see langword="true" /> if this set contains no elements.
1500             </summary>
1501         </member>
1502         <member name="P:Iesi.Collections.DictionarySet.Count">
1503             <summary>
1504             The number of elements contained in this collection.
1505             </summary>
1506         </member>
1507         <member name="P:Iesi.Collections.DictionarySet.IsSynchronized">
1508             <summary>
1509             None of the objects based on <c>DictionarySet</c> are synchronized.  Use the
1510             <c>SyncRoot</c> property instead.
1511             </summary>
1512         </member>
1513         <member name="P:Iesi.Collections.DictionarySet.SyncRoot">
1514             <summary>
1515             Returns an object that can be used to synchronize the <c>Set</c> between threads.
1516             </summary>
1517         </member>
1518         <member name="T:Iesi.Collections.HashedSet">
1519             <summary>
1520             Implements a <c>Set</c> based on a hash table.  This will give the best lookup, add, and remove
1521             performance for very large data-sets, but iteration will occur in no particular order.
1522             </summary>
1523         </member>
1524         <member name="M:Iesi.Collections.HashedSet.#ctor">
1525             <summary>
1526             Creates a new set instance based on a hash table.
1527             </summary>
1528         </member>
1529         <member name="M:Iesi.Collections.HashedSet.#ctor(System.Collections.ICollection)">
1530             <summary>
1531             Creates a new set instance based on a hash table and
1532             initializes it based on a collection of elements.
1533             </summary>
1534             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1535         </member>
1536         <member name="T:Iesi.Collections.HybridSet">
1537             <summary>
1538             Implements a <c>Set</c> that automatically changes from a list to a hash table
1539             when the size reaches a certain threshold.  This is good if you are unsure about
1540             whether you data-set will be tiny or huge.  Because this uses a dual implementation,
1541             iteration order is not guaranteed!
1542             </summary>
1543         </member>
1544         <member name="M:Iesi.Collections.HybridSet.#ctor">
1545             <summary>
1546             Creates a new set instance based on either a list or a hash table, depending on which 
1547             will be more efficient based on the data-set size.
1548             </summary>
1549         </member>
1550         <member name="M:Iesi.Collections.HybridSet.#ctor(System.Collections.ICollection)">
1551             <summary>
1552             Creates a new set instance based on either a list or a hash table, depending on which 
1553             will be more efficient based on the data-set size, and
1554             initializes it based on a collection of elements.
1555             </summary>
1556             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1557         </member>
1558         <member name="T:Iesi.Collections.ImmutableSet">
1559             <summary>
1560             <p>Implements an immutable (read-only) <c>Set</c> wrapper.</p>
1561             <p>Although this is advertised as immutable, it really isn't.  Anyone with access to the
1562             <c>basisSet</c> can still change the data-set.  So <c>GetHashCode()</c> is not implemented
1563             for this <c>Set</c>, as is the case for all <c>Set</c> implementations in this library.
1564             This design decision was based on the efficiency of not having to <c>Clone()</c> the 
1565             <c>basisSet</c> every time you wrap a mutable <c>Set</c>.</p>
1566             </summary>
1567         </member>
1568         <member name="M:Iesi.Collections.ImmutableSet.#ctor(Iesi.Collections.ISet)">
1569             <summary>
1570             Constructs an immutable (read-only) <c>Set</c> wrapper.
1571             </summary>
1572             <param name="basisSet">The <c>Set</c> that is wrapped.</param>
1573         </member>
1574         <member name="M:Iesi.Collections.ImmutableSet.Add(System.Object)">
1575             <summary>
1576             Adds the specified element to this set if it is not already present.
1577             </summary>
1578             <param name="o">The object to add to the set.</param>
1579             <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1580         </member>
1581         <member name="M:Iesi.Collections.ImmutableSet.AddAll(System.Collections.ICollection)">
1582             <summary>
1583             Adds all the elements in the specified collection to the set if they are not already present.
1584             </summary>
1585             <param name="c">A collection of objects to add to the set.</param>
1586             <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1587         </member>
1588         <member name="M:Iesi.Collections.ImmutableSet.Clear">
1589             <summary>
1590             Removes all objects from the set.
1591             </summary>
1592         </member>
1593         <member name="M:Iesi.Collections.ImmutableSet.Contains(System.Object)">
1594             <summary>
1595             Returns <see langword="true" /> if this set contains the specified element.
1596             </summary>
1597             <param name="o">The element to look for.</param>
1598             <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1599         </member>
1600         <member name="M:Iesi.Collections.ImmutableSet.ContainsAll(System.Collections.ICollection)">
1601             <summary>
1602             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1603             </summary>
1604             <param name="c">A collection of objects.</param>
1605             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1606         </member>
1607         <member name="M:Iesi.Collections.ImmutableSet.Remove(System.Object)">
1608             <summary>
1609             Removes the specified element from the set.
1610             </summary>
1611             <param name="o">The element to be removed.</param>
1612             <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1613         </member>
1614         <member name="M:Iesi.Collections.ImmutableSet.RemoveAll(System.Collections.ICollection)">
1615             <summary>
1616             Remove all the specified elements from this set, if they exist in this set.
1617             </summary>
1618             <param name="c">A collection of elements to remove.</param>
1619             <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1620         </member>
1621         <member name="M:Iesi.Collections.ImmutableSet.RetainAll(System.Collections.ICollection)">
1622             <summary>
1623             Retains only the elements in this set that are contained in the specified collection.
1624             </summary>
1625             <param name="c">Collection that defines the set of elements to be retained.</param>
1626             <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1627         </member>
1628         <member name="M:Iesi.Collections.ImmutableSet.CopyTo(System.Array,System.Int32)">
1629             <summary>
1630             Copies the elements in the <c>Set</c> to an array.  The type of array needs
1631             to be compatible with the objects in the <c>Set</c>, obviously.
1632             </summary>
1633             <param name="array">An array that will be the target of the copy operation.</param>
1634             <param name="index">The zero-based index where copying will start.</param>
1635         </member>
1636         <member name="M:Iesi.Collections.ImmutableSet.GetEnumerator">
1637             <summary>
1638             Gets an enumerator for the elements in the <c>Set</c>.
1639             </summary>
1640             <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
1641         </member>
1642         <member name="M:Iesi.Collections.ImmutableSet.Clone">
1643             <summary>
1644             Returns a clone of the <c>Set</c> instance.  
1645             </summary>
1646             <returns>A clone of this object.</returns>
1647         </member>
1648         <member name="M:Iesi.Collections.ImmutableSet.Union(Iesi.Collections.ISet)">
1649             <summary>
1650             Performs a "union" of the two sets, where all the elements
1651             in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1652             Neither this set nor the input set are modified during the operation.  The return value
1653             is a <c>Clone()</c> of this set with the extra elements added in.
1654             </summary>
1655             <param name="a">A collection of elements.</param>
1656             <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
1657             Neither of the input objects is modified by the union.</returns>
1658         </member>
1659         <member name="M:Iesi.Collections.ImmutableSet.Intersect(Iesi.Collections.ISet)">
1660             <summary>
1661             Performs an "intersection" of the two sets, where only the elements
1662             that are present in both sets remain.  That is, the element is included if it exists in
1663             both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
1664             a <c>Clone()</c> of this set with the appropriate elements removed.
1665             </summary>
1666             <param name="a">A set of elements.</param>
1667             <returns>The intersection of this set with <c>a</c>.</returns>
1668         </member>
1669         <member name="M:Iesi.Collections.ImmutableSet.Minus(Iesi.Collections.ISet)">
1670             <summary>
1671             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1672             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1673             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1674             of this <c>Set</c> containing the elements from the operation.
1675             </summary>
1676             <param name="a">A set of elements.</param>
1677             <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
1678         </member>
1679         <member name="M:Iesi.Collections.ImmutableSet.ExclusiveOr(Iesi.Collections.ISet)">
1680             <summary>
1681             Performs an "exclusive-or" of the two sets, keeping only the elements that
1682             are in one of the sets, but not in both.  The original sets are not modified
1683             during this operation.  The result set is a <c>Clone()</c> of this set containing
1684             the elements from the exclusive-or operation.
1685             </summary>
1686             <param name="a">A set of elements.</param>
1687             <returns>A set containing the result of <c>a ^ b</c>.</returns>
1688         </member>
1689         <member name="P:Iesi.Collections.ImmutableSet.IsEmpty">
1690             <summary>
1691             Returns <see langword="true" /> if this set contains no elements.
1692             </summary>
1693         </member>
1694         <member name="P:Iesi.Collections.ImmutableSet.Count">
1695             <summary>
1696             The number of elements contained in this collection.
1697             </summary>
1698         </member>
1699         <member name="P:Iesi.Collections.ImmutableSet.IsSynchronized">
1700             <summary>
1701             Returns an object that can be used to synchronize use of the <c>Set</c> across threads.
1702             </summary>
1703         </member>
1704         <member name="P:Iesi.Collections.ImmutableSet.SyncRoot">
1705             <summary>
1706             Returns an object that can be used to synchronize the <c>Set</c> between threads.
1707             </summary>
1708         </member>
1709         <member name="T:Iesi.Collections.ListSet">
1710             <summary>
1711             Implements a <c>Set</c> based on a list.  Performance is much better for very small lists 
1712             than either <c>HashedSet</c> or <c>SortedSet</c>.  However, performance degrades rapidly as 
1713             the data-set gets bigger.  Use a <c>HybridSet</c> instead if you are not sure your data-set
1714             will always remain very small.  Iteration produces elements in the order they were added.
1715             However, element order is not guaranteed to be maintained by the various <c>Set</c>
1716             mathematical operators.  
1717             </summary>
1718         </member>
1719         <member name="M:Iesi.Collections.ListSet.#ctor">
1720             <summary>
1721             Creates a new set instance based on a list.
1722             </summary>
1723         </member>
1724         <member name="M:Iesi.Collections.ListSet.#ctor(System.Collections.ICollection)">
1725             <summary>
1726             Creates a new set instance based on a list and
1727             initializes it based on a collection of elements.
1728             </summary>
1729             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1730         </member>
1731         <member name="T:Iesi.Collections.SortedSet">
1732             <summary>
1733             Implements a set based on a sorted tree.  This gives good performance for operations on very
1734             large data-sets, though not as good - asymptotically - as a <see cref="T:Iesi.Collections.HashedSet"/>.
1735             However, iteration occurs in order.  Elements that you put into this type of collection must
1736             implement <see cref="T:System.IComparable"/>, and they must actually be comparable.  You can't mix
1737             <see cref="T:System.String"/> and <see cref="T:System.Int32"/> values, for example.
1738             </summary>
1739         </member>
1740         <member name="M:Iesi.Collections.SortedSet.#ctor">
1741             <summary>
1742             Creates a new set instance based on a sorted tree.
1743             </summary>
1744         </member>
1745         <member name="M:Iesi.Collections.SortedSet.#ctor(System.Collections.IComparer)">
1746             <summary>
1747             Creates a new set instance based on a sorted tree.
1748             </summary>
1749             <param name="comparer">The <see cref="T:System.Collections.IComparer"/> to use for sorting.</param>
1750         </member>
1751         <member name="M:Iesi.Collections.SortedSet.#ctor(System.Collections.ICollection)">
1752             <summary>
1753             Creates a new set instance based on a sorted tree and
1754             initializes it based on a collection of elements.
1755             </summary>
1756             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1757         </member>
1758         <member name="M:Iesi.Collections.SortedSet.#ctor(System.Collections.ICollection,System.Collections.IComparer)">
1759             <summary>
1760             Creates a new set instance based on a sorted tree and
1761             initializes it based on a collection of elements.
1762             </summary>
1763             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1764             <param name="comparer">The <see cref="T:System.Collections.IComparer"/> to use for sorting.</param>
1765         </member>
1766         <member name="T:Iesi.Collections.SynchronizedSet">
1767             <summary>
1768             Implements a thread-safe <see cref="T:Iesi.Collections.ISet"/> wrapper.
1769             </summary>
1770             <remarks>
1771             The implementation is extremely conservative, serializing critical sections
1772             to prevent possible deadlocks, and locking on everything. The one exception
1773             is for enumeration, which is inherently not thread-safe.  For this, you have
1774             to <see langword="lock"/> the <see cref="P:Iesi.Collections.SynchronizedSet.SyncRoot"/> object for the duration
1775             of the enumeration.
1776             </remarks>
1777         </member>
1778         <member name="M:Iesi.Collections.SynchronizedSet.#ctor(Iesi.Collections.ISet)">
1779             <summary>
1780             Constructs a thread-safe <see cref="T:Iesi.Collections.ISet"/> wrapper.
1781             </summary>
1782             <param name="basisSet">The <see cref="T:Iesi.Collections.ISet"/> object that this object will wrap.</param>
1783         </member>
1784         <member name="M:Iesi.Collections.SynchronizedSet.Add(System.Object)">
1785             <summary>
1786             Adds the specified element to this set if it is not already present.
1787             </summary>
1788             <param name="o">The object to add to the set.</param>
1789             <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1790         </member>
1791         <member name="M:Iesi.Collections.SynchronizedSet.AddAll(System.Collections.ICollection)">
1792             <summary>
1793             Adds all the elements in the specified collection to the set if they are not already present.
1794             </summary>
1795             <param name="c">A collection of objects to add to the set.</param>
1796             <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1797         </member>
1798         <member name="M:Iesi.Collections.SynchronizedSet.Clear">
1799             <summary>
1800             Removes all objects from the set.
1801             </summary>
1802         </member>
1803         <member name="M:Iesi.Collections.SynchronizedSet.Contains(System.Object)">
1804             <summary>
1805             Returns <see langword="true" /> if this set contains the specified element.
1806             </summary>
1807             <param name="o">The element to look for.</param>
1808             <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1809         </member>
1810         <member name="M:Iesi.Collections.SynchronizedSet.ContainsAll(System.Collections.ICollection)">
1811             <summary>
1812             Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1813             </summary>
1814             <param name="c">A collection of objects.</param>
1815             <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1816         </member>
1817         <member name="M:Iesi.Collections.SynchronizedSet.Remove(System.Object)">
1818             <summary>
1819             Removes the specified element from the set.
1820             </summary>
1821             <param name="o">The element to be removed.</param>
1822             <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1823         </member>
1824         <member name="M:Iesi.Collections.SynchronizedSet.RemoveAll(System.Collections.ICollection)">
1825             <summary>
1826             Remove all the specified elements from this set, if they exist in this set.
1827             </summary>
1828             <param name="c">A collection of elements to remove.</param>
1829             <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1830         </member>
1831         <member name="M:Iesi.Collections.SynchronizedSet.RetainAll(System.Collections.ICollection)">
1832             <summary>
1833             Retains only the elements in this set that are contained in the specified collection.
1834             </summary>
1835             <param name="c">Collection that defines the set of elements to be retained.</param>
1836             <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1837         </member>
1838         <member name="M:Iesi.Collections.SynchronizedSet.CopyTo(System.Array,System.Int32)">
1839             <summary>
1840             Copies the elements in the set to an array.  The type of array needs
1841             to be compatible with the objects in the set, obviously.
1842             </summary>
1843             <param name="array">An array that will be the target of the copy operation.</param>
1844             <param name="index">The zero-based index where copying will start.</param>
1845         </member>
1846         <member name="M:Iesi.Collections.SynchronizedSet.GetEnumerator">
1847             <summary>
1848             Returns an enumerator that iterates through the set.
1849             </summary>
1850             <returns>
1851             An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the set.
1852             </returns>
1853             <remarks>
1854             Enumeration is, by definition, not thread-safe.  Use a <see langword="lock"/> on the <see cref="P:Iesi.Collections.SynchronizedSet.SyncRoot"/> 
1855             to synchronize the entire enumeration process.
1856             </remarks>
1857         </member>
1858         <member name="M:Iesi.Collections.SynchronizedSet.Clone">
1859             <summary>
1860             Returns a clone of this instance.  
1861             </summary>
1862             <returns>A clone of this object.</returns>
1863         </member>
1864         <member name="P:Iesi.Collections.SynchronizedSet.IsEmpty">
1865             <summary>
1866             Returns <see langword="true" /> if this set contains no elements.
1867             </summary>
1868         </member>
1869         <member name="P:Iesi.Collections.SynchronizedSet.Count">
1870             <summary>
1871             The number of elements contained in this collection.
1872             </summary>
1873         </member>
1874         <member name="P:Iesi.Collections.SynchronizedSet.IsSynchronized">
1875             <summary>
1876             Returns <see langword="true"/>, indicating that this object is thread-safe.  The exception to this
1877             is enumeration, which is inherently not thread-safe.  Use the <see cref="P:Iesi.Collections.SynchronizedSet.SyncRoot"/> object to
1878             lock this object for the entire duration of the enumeration.
1879             </summary>
1880         </member>
1881         <member name="P:Iesi.Collections.SynchronizedSet.SyncRoot">
1882             <summary>
1883             Returns an object that can be used to synchronize the set between threads.
1884             </summary>
1885         </member>
1886     </members>
1887 </doc>