Removed initial binder support which was replaced with more general approach.
[castle.git] / SharedLibs / mono / 2.0 / Iesi.Collections.xml
blob6e8fbf61d07ebfdf1a5959c906c0bccc069e7e66
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 <c>true</c> if the set contains all the elements in the specified collection.
156             </summary>
157             <param name="c">A collection of objects.</param>
158             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> 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><c>true</c> is the object was added, <c>false</c> 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><c>true</c> is the set changed as a result of this operation, <c>false</c> 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><c>true</c> 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><c>true</c> 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 <c>true</c> 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 <c>true</c> if this set contains the specified element.
278             </summary>
279             <param name="o">The element to look for.</param>
280             <returns><c>true</c> if this set contains the specified element, <c>false</c> otherwise.</returns>
281         </member>
282         <member name="M:Iesi.Collections.ISet.ContainsAll(System.Collections.ICollection)">
283             <summary>
284             Returns <c>true</c> if the set contains all the elements in the specified collection.
285             </summary>
286             <param name="c">A collection of objects.</param>
287             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> 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><c>true</c> is the object was added, <c>false</c> 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><c>true</c> is the set changed as a result of this operation, <c>false</c> 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><c>true</c> if the set contained the specified element, <c>false</c> 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><c>true</c> 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><c>true</c> 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 <c>true</c> 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 <c>null</c>) 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.  <c>null</c> if both sets are <c>null</c>.</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 <c>null</c>) 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.  <c>null</c> if both sets are <c>null</c>.</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 <c>null</c>) 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.  <c>null</c> if both sets are <c>null</c>.</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 <c>null</c>) 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.  <c>null</c> if both sets are <c>null</c>.</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.  <c>null</c> if <c>a</c> is <c>null</c>.</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.  <c>null</c> if <c>a</c> is <c>null</c>.</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 <c>null</c>) 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>.  <c>null</c> if both sets are <c>null</c>.</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 <c>null</c>) 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>.  <c>null</c> if both sets are <c>null</c>.</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><c>true</c> is the object was added, <c>false</c> 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><c>true</c> is the set changed as a result of this operation, <c>false</c> 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 <c>true</c> if this set contains the specified element.
489             </summary>
490             <param name="o">The element to look for.</param>
491             <returns><c>true</c> if this set contains the specified element, <c>false</c> otherwise.</returns>
492         </member>
493         <member name="M:Iesi.Collections.Generic.Set`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
494             <summary>
495             Returns <c>true</c> if the set contains all the elements in the specified collection.
496             </summary>
497             <param name="c">A collection of objects.</param>
498             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> 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><c>true</c> if the set contained the specified element, <c>false</c> 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><c>true</c> 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><c>true</c> 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 <c>true</c> 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 <c>true</c> 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             <c>true</c> if the ISet is read-only; otherwise, <c>false</c>. 
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><c>true</c> is the object was added, <c>false</c> 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><c>true</c> is the set changed as a result of this operation, <c>false</c> 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 <c>true</c> if this set contains the specified element.
639             </summary>
640             <param name="o">The element to look for.</param>
641             <returns><c>true</c> if this set contains the specified element, <c>false</c> otherwise.</returns>
642         </member>
643         <member name="M:Iesi.Collections.Generic.DictionarySet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
644             <summary>
645             Returns <c>true</c> if the set contains all the elements in the specified collection.
646             </summary>
647             <param name="c">A collection of objects.</param>
648             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> 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><c>true</c> if the set contained the specified element, <c>false</c> 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><c>true</c> 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><c>true</c> 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 <c>true</c> 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 <c>true</c> if this set contains the specified element.
788             </summary>
789             <param name="o">The element to look for.</param>
790             <returns><c>true</c> if this set contains the specified element, <c>false</c> otherwise.</returns>
791         </member>
792         <member name="M:Iesi.Collections.Generic.ImmutableSet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
793             <summary>
794             Returns <c>true</c> if the set contains all the elements in the specified collection.
795             </summary>
796             <param name="c">A collection of objects.</param>
797             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> 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 <c>true</c> 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><c>true</c> is the object was added, <c>false</c> 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><c>true</c> is the set changed as a result of this operation, <c>false</c> 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 <c>true</c> if this set contains the specified element.
1021             </summary>
1022             <param name="o">The element to look for.</param>
1023             <returns><c>true</c> if this set contains the specified element, <c>false</c> otherwise.</returns>
1024         </member>
1025         <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
1026             <summary>
1027             Returns <c>true</c> if the set contains all the elements in the specified collection.
1028             </summary>
1029             <param name="c">A collection of objects.</param>
1030             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> 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><c>true</c> if the set contained the specified element, <c>false</c> 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><c>true</c> 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><c>true</c> 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 <c>true</c> 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 <c>true</c>, 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><p>A collection that contains no duplicate elements.  This class models the mathematical
1129             <c>Set</c> abstraction, and is the base class for all other <c>Set</c> implementations.  
1130             The order of elements in a set is dependant on (a)the data-structure implementation, and 
1131             (b)the implementation of the various <c>Set</c> methods, and thus is not guaranteed.</p>
1132              
1133             <p>None of the <c>Set</c> implementations in this library are guranteed to be thread-safe
1134             in any way unless wrapped in a <c>SynchronizedSet</c>.</p>
1135             
1136             <p>The following table summarizes the binary operators that are supported by the <c>Set</c> class.</p>
1137             <list type="table">
1138                 <listheader>
1139                         <term>Operation</term>
1140                         <term>Description</term>
1141                         <term>Method</term>
1142                         <term>Operator</term>
1143                 </listheader>
1144                 <item>
1145                         <term>Union (OR)</term>
1146                         <term>Element included in result if it exists in either <c>A</c> OR <c>B</c>.</term>
1147                         <term><c>Union()</c></term>
1148                         <term><c>|</c></term>
1149                 </item>
1150                 <item>
1151                         <term>Intersection (AND)</term>
1152                         <term>Element included in result if it exists in both <c>A</c> AND <c>B</c>.</term>
1153                         <term><c>InterSect()</c></term>
1154                         <term><c>&amp;</c></term>
1155                 </item>
1156                 <item>
1157                         <term>Exclusive Or (XOR)</term>
1158                         <term>Element included in result if it exists in one, but not both, of <c>A</c> and <c>B</c>.</term>
1159                         <term><c>ExclusiveOr()</c></term>
1160                         <term><c>^</c></term>
1161                 </item>
1162                 <item>
1163                         <term>Minus (n/a)</term>
1164                         <term>Take all the elements in <c>A</c>.  Now, if any of them exist in <c>B</c>, remove
1165                         them.  Note that unlike the other operators, <c>A - B</c> is not the same as <c>B - A</c>.</term>
1166                         <term><c>Minus()</c></term>
1167                         <term><c>-</c></term>
1168                 </item>
1169             </list>
1170             </summary>
1171         </member>
1172         <member name="M:Iesi.Collections.Set.Union(Iesi.Collections.ISet)">
1173             <summary>
1174             Performs a "union" of the two sets, where all the elements
1175             in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1176             Neither this set nor the input set are modified during the operation.  The return value
1177             is a <c>Clone()</c> of this set with the extra elements added in.
1178             </summary>
1179             <param name="a">A collection of elements.</param>
1180             <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
1181             Neither of the input objects is modified by the union.</returns>
1182         </member>
1183         <member name="M:Iesi.Collections.Set.Union(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1184             <summary>
1185             Performs a "union" of two sets, where all the elements
1186             in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1187             The return value is a <c>Clone()</c> of one of the sets (<c>a</c> if it is not <c>null</c>) with elements of the other set
1188             added in.  Neither of the input sets is modified by the operation.
1189             </summary>
1190             <param name="a">A set of elements.</param>
1191             <param name="b">A set of elements.</param>
1192             <returns>A set containing the union of the input sets.  <c>null</c> if both sets are <c>null</c>.</returns>
1193         </member>
1194         <member name="M:Iesi.Collections.Set.op_BitwiseOr(Iesi.Collections.Set,Iesi.Collections.Set)">
1195             <summary>
1196             Performs a "union" of two sets, where all the elements
1197             in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1198             The return value is a <c>Clone()</c> of one of the sets (<c>a</c> if it is not <c>null</c>) with elements of the other set
1199             added in.  Neither of the input sets is modified by the operation.
1200             </summary>
1201             <param name="a">A set of elements.</param>
1202             <param name="b">A set of elements.</param>
1203             <returns>A set containing the union of the input sets.  <c>null</c> if both sets are <c>null</c>.</returns>
1204         </member>
1205         <member name="M:Iesi.Collections.Set.Intersect(Iesi.Collections.ISet)">
1206             <summary>
1207             Performs an "intersection" of the two sets, where only the elements
1208             that are present in both sets remain.  That is, the element is included if it exists in
1209             both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
1210             a <c>Clone()</c> of this set with the appropriate elements removed.
1211             </summary>
1212             <param name="a">A set of elements.</param>
1213             <returns>The intersection of this set with <c>a</c>.</returns>
1214         </member>
1215         <member name="M:Iesi.Collections.Set.Intersect(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1216             <summary>
1217             Performs an "intersection" of the two sets, where only the elements
1218             that are present in both sets remain.  That is, the element is included only if it exists in
1219             both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
1220             The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <c>null</c>) containing the
1221             elements from the intersect operation. 
1222             </summary>
1223             <param name="a">A set of elements.</param>
1224             <param name="b">A set of elements.</param>
1225             <returns>The intersection of the two input sets.  <c>null</c> if both sets are <c>null</c>.</returns>
1226         </member>
1227         <member name="M:Iesi.Collections.Set.op_BitwiseAnd(Iesi.Collections.Set,Iesi.Collections.Set)">
1228             <summary>
1229             Performs an "intersection" of the two sets, where only the elements
1230             that are present in both sets remain.  That is, the element is included only if it exists in
1231             both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
1232             The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <c>null</c>) containing the
1233             elements from the intersect operation. 
1234             </summary>
1235             <param name="a">A set of elements.</param>
1236             <param name="b">A set of elements.</param>
1237             <returns>The intersection of the two input sets.  <c>null</c> if both sets are <c>null</c>.</returns>
1238         </member>
1239         <member name="M:Iesi.Collections.Set.Minus(Iesi.Collections.ISet)">
1240             <summary>
1241             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1242             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1243             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1244             of this <c>Set</c> containing the elements from the operation.
1245             </summary>
1246             <param name="a">A set of elements.</param>
1247             <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
1248         </member>
1249         <member name="M:Iesi.Collections.Set.Minus(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1250             <summary>
1251             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1252             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1253             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1254             of set <c>a</c> containing the elements from the operation. 
1255             </summary>
1256             <param name="a">A set of elements.</param>
1257             <param name="b">A set of elements.</param>
1258             <returns>A set containing <c>A - B</c> elements.  <c>null</c> if <c>a</c> is <c>null</c>.</returns>
1259         </member>
1260         <member name="M:Iesi.Collections.Set.op_Subtraction(Iesi.Collections.Set,Iesi.Collections.Set)">
1261             <summary>
1262             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1263             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1264             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1265             of set <c>a</c> containing the elements from the operation. 
1266             </summary>
1267             <param name="a">A set of elements.</param>
1268             <param name="b">A set of elements.</param>
1269             <returns>A set containing <c>A - B</c> elements.  <c>null</c> if <c>a</c> is <c>null</c>.</returns>
1270         </member>
1271         <member name="M:Iesi.Collections.Set.ExclusiveOr(Iesi.Collections.ISet)">
1272             <summary>
1273             Performs an "exclusive-or" of the two sets, keeping only the elements that
1274             are in one of the sets, but not in both.  The original sets are not modified
1275             during this operation.  The result set is a <c>Clone()</c> of this set containing
1276             the elements from the exclusive-or operation.
1277             </summary>
1278             <param name="a">A set of elements.</param>
1279             <returns>A set containing the result of <c>a ^ b</c>.</returns>
1280         </member>
1281         <member name="M:Iesi.Collections.Set.ExclusiveOr(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1282             <summary>
1283             Performs an "exclusive-or" of the two sets, keeping only the elements that
1284             are in one of the sets, but not in both.  The original sets are not modified
1285             during this operation.  The result set is a <c>Clone()</c> of one of the sets
1286             (<c>a</c> if it is not <c>null</c>) containing
1287             the elements from the exclusive-or operation.
1288             </summary>
1289             <param name="a">A set of elements.</param>
1290             <param name="b">A set of elements.</param>
1291             <returns>A set containing the result of <c>a ^ b</c>.  <c>null</c> if both sets are <c>null</c>.</returns>
1292         </member>
1293         <member name="M:Iesi.Collections.Set.op_ExclusiveOr(Iesi.Collections.Set,Iesi.Collections.Set)">
1294             <summary>
1295             Performs an "exclusive-or" of the two sets, keeping only the elements that
1296             are in one of the sets, but not in both.  The original sets are not modified
1297             during this operation.  The result set is a <c>Clone()</c> of one of the sets
1298             (<c>a</c> if it is not <c>null</c>) containing
1299             the elements from the exclusive-or operation.
1300             </summary>
1301             <param name="a">A set of elements.</param>
1302             <param name="b">A set of elements.</param>
1303             <returns>A set containing the result of <c>a ^ b</c>.  <c>null</c> if both sets are <c>null</c>.</returns>
1304         </member>
1305         <member name="M:Iesi.Collections.Set.Add(System.Object)">
1306             <summary>
1307             Adds the specified element to this set if it is not already present.
1308             </summary>
1309             <param name="o">The object to add to the set.</param>
1310             <returns><c>true</c> is the object was added, <c>false</c> if it was already present.</returns>
1311         </member>
1312         <member name="M:Iesi.Collections.Set.AddAll(System.Collections.ICollection)">
1313             <summary>
1314             Adds all the elements in the specified collection to the set if they are not already present.
1315             </summary>
1316             <param name="c">A collection of objects to add to the set.</param>
1317             <returns><c>true</c> is the set changed as a result of this operation, <c>false</c> if not.</returns>
1318         </member>
1319         <member name="M:Iesi.Collections.Set.Clear">
1320             <summary>
1321             Removes all objects from the set.
1322             </summary>
1323         </member>
1324         <member name="M:Iesi.Collections.Set.Contains(System.Object)">
1325             <summary>
1326             Returns <c>true</c> if this set contains the specified element.
1327             </summary>
1328             <param name="o">The element to look for.</param>
1329             <returns><c>true</c> if this set contains the specified element, <c>false</c> otherwise.</returns>
1330         </member>
1331         <member name="M:Iesi.Collections.Set.ContainsAll(System.Collections.ICollection)">
1332             <summary>
1333             Returns <c>true</c> if the set contains all the elements in the specified collection.
1334             </summary>
1335             <param name="c">A collection of objects.</param>
1336             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> otherwise.</returns>
1337         </member>
1338         <member name="M:Iesi.Collections.Set.Remove(System.Object)">
1339             <summary>
1340             Removes the specified element from the set.
1341             </summary>
1342             <param name="o">The element to be removed.</param>
1343             <returns><c>true</c> if the set contained the specified element, <c>false</c> otherwise.</returns>
1344         </member>
1345         <member name="M:Iesi.Collections.Set.RemoveAll(System.Collections.ICollection)">
1346             <summary>
1347             Remove all the specified elements from this set, if they exist in this set.
1348             </summary>
1349             <param name="c">A collection of elements to remove.</param>
1350             <returns><c>true</c> if the set was modified as a result of this operation.</returns>
1351         </member>
1352         <member name="M:Iesi.Collections.Set.RetainAll(System.Collections.ICollection)">
1353             <summary>
1354             Retains only the elements in this set that are contained in the specified collection.
1355             </summary>
1356             <param name="c">Collection that defines the set of elements to be retained.</param>
1357             <returns><c>true</c> if this set changed as a result of this operation.</returns>
1358         </member>
1359         <member name="M:Iesi.Collections.Set.Clone">
1360             <summary>
1361             Returns a clone of the <c>Set</c> instance.  This will work for derived <c>Set</c>
1362             classes if the derived class implements a constructor that takes no arguments.
1363             </summary>
1364             <returns>A clone of this object.</returns>
1365         </member>
1366         <member name="M:Iesi.Collections.Set.CopyTo(System.Array,System.Int32)">
1367             <summary>
1368             Copies the elements in the <c>Set</c> to an array.  The type of array needs
1369             to be compatible with the objects in the <c>Set</c>, obviously.
1370             </summary>
1371             <param name="array">An array that will be the target of the copy operation.</param>
1372             <param name="index">The zero-based index where copying will start.</param>
1373         </member>
1374         <member name="M:Iesi.Collections.Set.GetEnumerator">
1375             <summary>
1376             Gets an enumerator for the elements in the <c>Set</c>.
1377             </summary>
1378             <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
1379         </member>
1380         <member name="P:Iesi.Collections.Set.IsEmpty">
1381             <summary>
1382             Returns <c>true</c> if this set contains no elements.
1383             </summary>
1384         </member>
1385         <member name="P:Iesi.Collections.Set.Count">
1386             <summary>
1387             The number of elements currently contained in this collection.
1388             </summary>
1389         </member>
1390         <member name="P:Iesi.Collections.Set.IsSynchronized">
1391             <summary>
1392             Returns <c>true</c> if the <c>Set</c> is synchronized across threads.  Note that
1393             enumeration is inherently not thread-safe.  Use the <c>SyncRoot</c> to lock the
1394             object during enumeration.
1395             </summary>
1396         </member>
1397         <member name="P:Iesi.Collections.Set.SyncRoot">
1398             <summary>
1399             An object that can be used to synchronize this collection to make it thread-safe.
1400             When implementing this, if your object uses a base object, like an <c>IDictionary</c>,
1401             or anything that has a <c>SyncRoot</c>, return that object instead of "<c>this</c>".
1402             </summary>
1403         </member>
1404         <member name="F:Iesi.Collections.DictionarySet.InternalDictionary">
1405             <summary>
1406             Provides the storage for elements in the <c>Set</c>, stored as the key-set
1407             of the <c>IDictionary</c> object.  Set this object in the constructor
1408             if you create your own <c>Set</c> class.  
1409             </summary>
1410         </member>
1411         <member name="M:Iesi.Collections.DictionarySet.Add(System.Object)">
1412             <summary>
1413             Adds the specified element to this set if it is not already present.
1414             </summary>
1415             <param name="o">The object to add to the set.</param>
1416             <returns><c>true</c> is the object was added, <c>false</c> if it was already present.</returns>
1417         </member>
1418         <member name="M:Iesi.Collections.DictionarySet.AddAll(System.Collections.ICollection)">
1419             <summary>
1420             Adds all the elements in the specified collection to the set if they are not already present.
1421             </summary>
1422             <param name="c">A collection of objects to add to the set.</param>
1423             <returns><c>true</c> is the set changed as a result of this operation, <c>false</c> if not.</returns>
1424         </member>
1425         <member name="M:Iesi.Collections.DictionarySet.Clear">
1426             <summary>
1427             Removes all objects from the set.
1428             </summary>
1429         </member>
1430         <member name="M:Iesi.Collections.DictionarySet.Contains(System.Object)">
1431             <summary>
1432             Returns <c>true</c> if this set contains the specified element.
1433             </summary>
1434             <param name="o">The element to look for.</param>
1435             <returns><c>true</c> if this set contains the specified element, <c>false</c> otherwise.</returns>
1436         </member>
1437         <member name="M:Iesi.Collections.DictionarySet.ContainsAll(System.Collections.ICollection)">
1438             <summary>
1439             Returns <c>true</c> if the set contains all the elements in the specified collection.
1440             </summary>
1441             <param name="c">A collection of objects.</param>
1442             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> otherwise.</returns>
1443         </member>
1444         <member name="M:Iesi.Collections.DictionarySet.Remove(System.Object)">
1445             <summary>
1446             Removes the specified element from the set.
1447             </summary>
1448             <param name="o">The element to be removed.</param>
1449             <returns><c>true</c> if the set contained the specified element, <c>false</c> otherwise.</returns>
1450         </member>
1451         <member name="M:Iesi.Collections.DictionarySet.RemoveAll(System.Collections.ICollection)">
1452             <summary>
1453             Remove all the specified elements from this set, if they exist in this set.
1454             </summary>
1455             <param name="c">A collection of elements to remove.</param>
1456             <returns><c>true</c> if the set was modified as a result of this operation.</returns>
1457         </member>
1458         <member name="M:Iesi.Collections.DictionarySet.RetainAll(System.Collections.ICollection)">
1459             <summary>
1460             Retains only the elements in this set that are contained in the specified collection.
1461             </summary>
1462             <param name="c">Collection that defines the set of elements to be retained.</param>
1463             <returns><c>true</c> if this set changed as a result of this operation.</returns>
1464         </member>
1465         <member name="M:Iesi.Collections.DictionarySet.CopyTo(System.Array,System.Int32)">
1466             <summary>
1467             Copies the elements in the <c>Set</c> to an array.  The type of array needs
1468             to be compatible with the objects in the <c>Set</c>, obviously.
1469             </summary>
1470             <param name="array">An array that will be the target of the copy operation.</param>
1471             <param name="index">The zero-based index where copying will start.</param>
1472         </member>
1473         <member name="M:Iesi.Collections.DictionarySet.GetEnumerator">
1474             <summary>
1475             Gets an enumerator for the elements in the <c>Set</c>.
1476             </summary>
1477             <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
1478         </member>
1479         <member name="P:Iesi.Collections.DictionarySet.Placeholder">
1480             <summary>
1481             The placeholder object used as the value for the <c>IDictionary</c> instance.
1482             </summary>
1483             <remarks>
1484             There is a single instance of this object globally, used for all <c>Sets</c>.
1485             </remarks>
1486         </member>
1487         <member name="P:Iesi.Collections.DictionarySet.IsEmpty">
1488             <summary>
1489             Returns <c>true</c> if this set contains no elements.
1490             </summary>
1491         </member>
1492         <member name="P:Iesi.Collections.DictionarySet.Count">
1493             <summary>
1494             The number of elements contained in this collection.
1495             </summary>
1496         </member>
1497         <member name="P:Iesi.Collections.DictionarySet.IsSynchronized">
1498             <summary>
1499             None of the objects based on <c>DictionarySet</c> are synchronized.  Use the
1500             <c>SyncRoot</c> property instead.
1501             </summary>
1502         </member>
1503         <member name="P:Iesi.Collections.DictionarySet.SyncRoot">
1504             <summary>
1505             Returns an object that can be used to synchronize the <c>Set</c> between threads.
1506             </summary>
1507         </member>
1508         <member name="T:Iesi.Collections.HashedSet">
1509             <summary>
1510             Implements a <c>Set</c> based on a hash table.  This will give the best lookup, add, and remove
1511             performance for very large data-sets, but iteration will occur in no particular order.
1512             </summary>
1513         </member>
1514         <member name="M:Iesi.Collections.HashedSet.#ctor">
1515             <summary>
1516             Creates a new set instance based on a hash table.
1517             </summary>
1518         </member>
1519         <member name="M:Iesi.Collections.HashedSet.#ctor(System.Collections.ICollection)">
1520             <summary>
1521             Creates a new set instance based on a hash table and
1522             initializes it based on a collection of elements.
1523             </summary>
1524             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1525         </member>
1526         <member name="T:Iesi.Collections.HybridSet">
1527             <summary>
1528             Implements a <c>Set</c> that automatically changes from a list to a hash table
1529             when the size reaches a certain threshold.  This is good if you are unsure about
1530             whether you data-set will be tiny or huge.  Because this uses a dual implementation,
1531             iteration order is not guaranteed!
1532             </summary>
1533         </member>
1534         <member name="M:Iesi.Collections.HybridSet.#ctor">
1535             <summary>
1536             Creates a new set instance based on either a list or a hash table, depending on which 
1537             will be more efficient based on the data-set size.
1538             </summary>
1539         </member>
1540         <member name="M:Iesi.Collections.HybridSet.#ctor(System.Collections.ICollection)">
1541             <summary>
1542             Creates a new set instance based on either a list or a hash table, depending on which 
1543             will be more efficient based on the data-set size, and
1544             initializes it based on a collection of elements.
1545             </summary>
1546             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1547         </member>
1548         <member name="T:Iesi.Collections.ImmutableSet">
1549             <summary>
1550             <p>Implements an immutable (read-only) <c>Set</c> wrapper.</p>
1551             <p>Although this is advertised as immutable, it really isn't.  Anyone with access to the
1552             <c>basisSet</c> can still change the data-set.  So <c>GetHashCode()</c> is not implemented
1553             for this <c>Set</c>, as is the case for all <c>Set</c> implementations in this library.
1554             This design decision was based on the efficiency of not having to <c>Clone()</c> the 
1555             <c>basisSet</c> every time you wrap a mutable <c>Set</c>.</p>
1556             </summary>
1557         </member>
1558         <member name="M:Iesi.Collections.ImmutableSet.#ctor(Iesi.Collections.ISet)">
1559             <summary>
1560             Constructs an immutable (read-only) <c>Set</c> wrapper.
1561             </summary>
1562             <param name="basisSet">The <c>Set</c> that is wrapped.</param>
1563         </member>
1564         <member name="M:Iesi.Collections.ImmutableSet.Add(System.Object)">
1565             <summary>
1566             Adds the specified element to this set if it is not already present.
1567             </summary>
1568             <param name="o">The object to add to the set.</param>
1569             <returns><c>true</c> is the object was added, <c>false</c> if it was already present.</returns>
1570         </member>
1571         <member name="M:Iesi.Collections.ImmutableSet.AddAll(System.Collections.ICollection)">
1572             <summary>
1573             Adds all the elements in the specified collection to the set if they are not already present.
1574             </summary>
1575             <param name="c">A collection of objects to add to the set.</param>
1576             <returns><c>true</c> is the set changed as a result of this operation, <c>false</c> if not.</returns>
1577         </member>
1578         <member name="M:Iesi.Collections.ImmutableSet.Clear">
1579             <summary>
1580             Removes all objects from the set.
1581             </summary>
1582         </member>
1583         <member name="M:Iesi.Collections.ImmutableSet.Contains(System.Object)">
1584             <summary>
1585             Returns <c>true</c> if this set contains the specified element.
1586             </summary>
1587             <param name="o">The element to look for.</param>
1588             <returns><c>true</c> if this set contains the specified element, <c>false</c> otherwise.</returns>
1589         </member>
1590         <member name="M:Iesi.Collections.ImmutableSet.ContainsAll(System.Collections.ICollection)">
1591             <summary>
1592             Returns <c>true</c> if the set contains all the elements in the specified collection.
1593             </summary>
1594             <param name="c">A collection of objects.</param>
1595             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> otherwise.</returns>
1596         </member>
1597         <member name="M:Iesi.Collections.ImmutableSet.Remove(System.Object)">
1598             <summary>
1599             Removes the specified element from the set.
1600             </summary>
1601             <param name="o">The element to be removed.</param>
1602             <returns><c>true</c> if the set contained the specified element, <c>false</c> otherwise.</returns>
1603         </member>
1604         <member name="M:Iesi.Collections.ImmutableSet.RemoveAll(System.Collections.ICollection)">
1605             <summary>
1606             Remove all the specified elements from this set, if they exist in this set.
1607             </summary>
1608             <param name="c">A collection of elements to remove.</param>
1609             <returns><c>true</c> if the set was modified as a result of this operation.</returns>
1610         </member>
1611         <member name="M:Iesi.Collections.ImmutableSet.RetainAll(System.Collections.ICollection)">
1612             <summary>
1613             Retains only the elements in this set that are contained in the specified collection.
1614             </summary>
1615             <param name="c">Collection that defines the set of elements to be retained.</param>
1616             <returns><c>true</c> if this set changed as a result of this operation.</returns>
1617         </member>
1618         <member name="M:Iesi.Collections.ImmutableSet.CopyTo(System.Array,System.Int32)">
1619             <summary>
1620             Copies the elements in the <c>Set</c> to an array.  The type of array needs
1621             to be compatible with the objects in the <c>Set</c>, obviously.
1622             </summary>
1623             <param name="array">An array that will be the target of the copy operation.</param>
1624             <param name="index">The zero-based index where copying will start.</param>
1625         </member>
1626         <member name="M:Iesi.Collections.ImmutableSet.GetEnumerator">
1627             <summary>
1628             Gets an enumerator for the elements in the <c>Set</c>.
1629             </summary>
1630             <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
1631         </member>
1632         <member name="M:Iesi.Collections.ImmutableSet.Clone">
1633             <summary>
1634             Returns a clone of the <c>Set</c> instance.  
1635             </summary>
1636             <returns>A clone of this object.</returns>
1637         </member>
1638         <member name="M:Iesi.Collections.ImmutableSet.Union(Iesi.Collections.ISet)">
1639             <summary>
1640             Performs a "union" of the two sets, where all the elements
1641             in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1642             Neither this set nor the input set are modified during the operation.  The return value
1643             is a <c>Clone()</c> of this set with the extra elements added in.
1644             </summary>
1645             <param name="a">A collection of elements.</param>
1646             <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
1647             Neither of the input objects is modified by the union.</returns>
1648         </member>
1649         <member name="M:Iesi.Collections.ImmutableSet.Intersect(Iesi.Collections.ISet)">
1650             <summary>
1651             Performs an "intersection" of the two sets, where only the elements
1652             that are present in both sets remain.  That is, the element is included if it exists in
1653             both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
1654             a <c>Clone()</c> of this set with the appropriate elements removed.
1655             </summary>
1656             <param name="a">A set of elements.</param>
1657             <returns>The intersection of this set with <c>a</c>.</returns>
1658         </member>
1659         <member name="M:Iesi.Collections.ImmutableSet.Minus(Iesi.Collections.ISet)">
1660             <summary>
1661             Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1662             the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1663             The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1664             of this <c>Set</c> containing the elements from the operation.
1665             </summary>
1666             <param name="a">A set of elements.</param>
1667             <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
1668         </member>
1669         <member name="M:Iesi.Collections.ImmutableSet.ExclusiveOr(Iesi.Collections.ISet)">
1670             <summary>
1671             Performs an "exclusive-or" of the two sets, keeping only the elements that
1672             are in one of the sets, but not in both.  The original sets are not modified
1673             during this operation.  The result set is a <c>Clone()</c> of this set containing
1674             the elements from the exclusive-or operation.
1675             </summary>
1676             <param name="a">A set of elements.</param>
1677             <returns>A set containing the result of <c>a ^ b</c>.</returns>
1678         </member>
1679         <member name="P:Iesi.Collections.ImmutableSet.IsEmpty">
1680             <summary>
1681             Returns <c>true</c> if this set contains no elements.
1682             </summary>
1683         </member>
1684         <member name="P:Iesi.Collections.ImmutableSet.Count">
1685             <summary>
1686             The number of elements contained in this collection.
1687             </summary>
1688         </member>
1689         <member name="P:Iesi.Collections.ImmutableSet.IsSynchronized">
1690             <summary>
1691             Returns an object that can be used to synchronize use of the <c>Set</c> across threads.
1692             </summary>
1693         </member>
1694         <member name="P:Iesi.Collections.ImmutableSet.SyncRoot">
1695             <summary>
1696             Returns an object that can be used to synchronize the <c>Set</c> between threads.
1697             </summary>
1698         </member>
1699         <member name="T:Iesi.Collections.ListSet">
1700             <summary>
1701             Implements a <c>Set</c> based on a list.  Performance is much better for very small lists 
1702             than either <c>HashedSet</c> or <c>SortedSet</c>.  However, performance degrades rapidly as 
1703             the data-set gets bigger.  Use a <c>HybridSet</c> instead if you are not sure your data-set
1704             will always remain very small.  Iteration produces elements in the order they were added.
1705             However, element order is not guaranteed to be maintained by the various <c>Set</c>
1706             mathematical operators.  
1707             </summary>
1708         </member>
1709         <member name="M:Iesi.Collections.ListSet.#ctor">
1710             <summary>
1711             Creates a new set instance based on a list.
1712             </summary>
1713         </member>
1714         <member name="M:Iesi.Collections.ListSet.#ctor(System.Collections.ICollection)">
1715             <summary>
1716             Creates a new set instance based on a list and
1717             initializes it based on a collection of elements.
1718             </summary>
1719             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1720         </member>
1721         <member name="T:Iesi.Collections.SortedSet">
1722             <summary>
1723             Implements a <c>Set</c> based on a sorted tree.  This gives good performance for operations on very
1724             large data-sets, though not as good - asymptotically - as a <c>HashedSet</c>.  However, iteration
1725             occurs in order.  Elements that you put into this type of collection must implement <c>IComparable</c>,
1726             and they must actually be comparable.  You can't mix <c>string</c> and <c>int</c> values, for example.
1727             </summary>
1728         </member>
1729         <member name="M:Iesi.Collections.SortedSet.#ctor">
1730             <summary>
1731             Creates a new set instance based on a sorted tree.
1732             </summary>
1733         </member>
1734         <member name="M:Iesi.Collections.SortedSet.#ctor(System.Collections.IComparer)">
1735             <summary>
1736             Creates a new set instance based on a sorted tree.
1737             </summary>
1738             <param name="comparer">The <see cref="T:System.Collections.IComparer"/> to use for sorting.</param>
1739         </member>
1740         <member name="M:Iesi.Collections.SortedSet.#ctor(System.Collections.ICollection)">
1741             <summary>
1742             Creates a new set instance based on a sorted tree and
1743             initializes it based on a collection of elements.
1744             </summary>
1745             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1746         </member>
1747         <member name="M:Iesi.Collections.SortedSet.#ctor(System.Collections.ICollection,System.Collections.IComparer)">
1748             <summary>
1749             Creates a new set instance based on a sorted tree and
1750             initializes it based on a collection of elements.
1751             </summary>
1752             <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1753             <param name="comparer">The <see cref="T:System.Collections.IComparer"/> to use for sorting.</param>
1754         </member>
1755         <member name="T:Iesi.Collections.SynchronizedSet">
1756             <summary>
1757             <p>Implements a thread-safe <c>Set</c> wrapper.  The implementation is extremely conservative, 
1758             serializing critical sections to prevent possible deadlocks, and locking on everything.
1759             The one exception is for enumeration, which is inherently not thread-safe.  For this, you
1760             have to <c>lock</c> the <c>SyncRoot</c> object for the duration of the enumeration.</p>
1761             </summary>
1762         </member>
1763         <member name="M:Iesi.Collections.SynchronizedSet.#ctor(Iesi.Collections.ISet)">
1764             <summary>
1765             Constructs a thread-safe <c>Set</c> wrapper.
1766             </summary>
1767             <param name="basisSet">The <c>Set</c> object that this object will wrap.</param>
1768         </member>
1769         <member name="M:Iesi.Collections.SynchronizedSet.Add(System.Object)">
1770             <summary>
1771             Adds the specified element to this set if it is not already present.
1772             </summary>
1773             <param name="o">The object to add to the set.</param>
1774             <returns><c>true</c> is the object was added, <c>false</c> if it was already present.</returns>
1775         </member>
1776         <member name="M:Iesi.Collections.SynchronizedSet.AddAll(System.Collections.ICollection)">
1777             <summary>
1778             Adds all the elements in the specified collection to the set if they are not already present.
1779             </summary>
1780             <param name="c">A collection of objects to add to the set.</param>
1781             <returns><c>true</c> is the set changed as a result of this operation, <c>false</c> if not.</returns>
1782         </member>
1783         <member name="M:Iesi.Collections.SynchronizedSet.Clear">
1784             <summary>
1785             Removes all objects from the set.
1786             </summary>
1787         </member>
1788         <member name="M:Iesi.Collections.SynchronizedSet.Contains(System.Object)">
1789             <summary>
1790             Returns <c>true</c> if this set contains the specified element.
1791             </summary>
1792             <param name="o">The element to look for.</param>
1793             <returns><c>true</c> if this set contains the specified element, <c>false</c> otherwise.</returns>
1794         </member>
1795         <member name="M:Iesi.Collections.SynchronizedSet.ContainsAll(System.Collections.ICollection)">
1796             <summary>
1797             Returns <c>true</c> if the set contains all the elements in the specified collection.
1798             </summary>
1799             <param name="c">A collection of objects.</param>
1800             <returns><c>true</c> if the set contains all the elements in the specified collection, <c>false</c> otherwise.</returns>
1801         </member>
1802         <member name="M:Iesi.Collections.SynchronizedSet.Remove(System.Object)">
1803             <summary>
1804             Removes the specified element from the set.
1805             </summary>
1806             <param name="o">The element to be removed.</param>
1807             <returns><c>true</c> if the set contained the specified element, <c>false</c> otherwise.</returns>
1808         </member>
1809         <member name="M:Iesi.Collections.SynchronizedSet.RemoveAll(System.Collections.ICollection)">
1810             <summary>
1811             Remove all the specified elements from this set, if they exist in this set.
1812             </summary>
1813             <param name="c">A collection of elements to remove.</param>
1814             <returns><c>true</c> if the set was modified as a result of this operation.</returns>
1815         </member>
1816         <member name="M:Iesi.Collections.SynchronizedSet.RetainAll(System.Collections.ICollection)">
1817             <summary>
1818             Retains only the elements in this set that are contained in the specified collection.
1819             </summary>
1820             <param name="c">Collection that defines the set of elements to be retained.</param>
1821             <returns><c>true</c> if this set changed as a result of this operation.</returns>
1822         </member>
1823         <member name="M:Iesi.Collections.SynchronizedSet.CopyTo(System.Array,System.Int32)">
1824             <summary>
1825             Copies the elements in the <c>Set</c> to an array.  The type of array needs
1826             to be compatible with the objects in the <c>Set</c>, obviously.
1827             </summary>
1828             <param name="array">An array that will be the target of the copy operation.</param>
1829             <param name="index">The zero-based index where copying will start.</param>
1830         </member>
1831         <member name="M:Iesi.Collections.SynchronizedSet.GetEnumerator">
1832             <summary>
1833             Enumeration is, by definition, not thread-safe.  Use a <c>lock</c> on the <c>SyncRoot</c> 
1834             to synchronize the entire enumeration process.
1835             </summary>
1836             <returns></returns>
1837         </member>
1838         <member name="M:Iesi.Collections.SynchronizedSet.Clone">
1839             <summary>
1840             Returns a clone of the <c>Set</c> instance.  
1841             </summary>
1842             <returns>A clone of this object.</returns>
1843         </member>
1844         <member name="P:Iesi.Collections.SynchronizedSet.IsEmpty">
1845             <summary>
1846             Returns <c>true</c> if this set contains no elements.
1847             </summary>
1848         </member>
1849         <member name="P:Iesi.Collections.SynchronizedSet.Count">
1850             <summary>
1851             The number of elements contained in this collection.
1852             </summary>
1853         </member>
1854         <member name="P:Iesi.Collections.SynchronizedSet.IsSynchronized">
1855             <summary>
1856             Returns <c>true</c>, indicating that this object is thread-safe.  The exception to this
1857             is enumeration, which is inherently not thread-safe.  Use the <c>SyncRoot</c> object to
1858             lock this object for the entire duration of the enumeration.
1859             </summary>
1860         </member>
1861         <member name="P:Iesi.Collections.SynchronizedSet.SyncRoot">
1862             <summary>
1863             Returns an object that can be used to synchronize the <c>Set</c> between threads.
1864             </summary>
1865         </member>
1866     </members>
1867 </doc>