roundhouse 0.8.0.351 → 0.8.0.362

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