1 2009-07-30 Raja R Harinath <harinath@hurrynot.org>
3 * List.cs (Enumerator.current): New.
4 (Enumerator.MoveNext): Update it.
5 (Enumerator.Current): Don't verify any invariants.
6 (Enumerator.Dispose): Set 'l' to null.
8 2009-07-29 Raja R Harinath <harinath@hurrynot.org>
10 * Dictionary.cs (Enumerator.current): New.
11 (Enumerator.MoveNext): Update it.
12 (Enumerator.Current): Don't verify any invariants.
14 2009-06-10 Marek Safar <marek.safar@gmail.com>
16 * IEqualityComparer.cs, IComparer.cs, IEnumerable.cs,
17 IEnumerator.cs: Add type variance.
19 2009-04-02 Jb Evain <jbevain@novell.com>
21 * Dictionary.cs (ValueCollection.CopyTo): fix for copying to
22 an object array. Based on a patch by Tobias Grimm <mono@e-tobi.net>.
25 2009-02-04 Zoltan Varga <vargaz@gmail.com>
27 * Dictionary.cs: Declare the Link struct outside the main class to avoid
28 creating a separate inflated instances for each instantiation of Dictionary.
30 2008-11-14 Jb Evain <jbevain@novell.com>
32 * Dictionary.cs (ICollection.CopyTo): fix the different possible
33 copying cases depending on the actual type of destination array,
34 be it an array of KeyValuePair, DictionaryEntry, or object.
37 2008-11-14 Jb Evain <jbevain@novell.com>
39 * Dictionary.cs: fix ICollection<KeyValuePair<T>>.Remove and .Contains
40 to not only check if the key exists but if the associated value is the
41 good one as well. Fixes #444768.
43 2008-10-06 Zoltan Varga <vargaz@gmail.com>
45 * Dictionary.cs (Clear): Clear the linkSlots array as well, as
46 Enumerator.MoveNext () depends on it. Fixes #432441.
48 Fri Oct 3 23:08:06 CEST 2008 Paolo Molaro <lupus@ximian.com>
50 * Dictionary.cs: by popular demand, return keys/values in insertion
53 2008-09-29 Jb Evain <jbevain@novell.com>
55 * Dictionary.cs: check for null argument in ContainsKey.
56 Patch by Jonathan Anderson <jonathan.l.anderson@gmail.com>
58 2008-09-24 Jb Evain <jbevain@novell.com>
60 * Dictionary.cs: properly reset all compounds enumerators.
63 2008-09-12 Jb Evain <jbevain@novell.com>
65 * Dictionary.cs: (ToTValue) allow null values to be added for non
66 value types TValues to the dictionary when using the
67 non generic IDictionary. Fixes #425693.
69 2008-06-16 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
71 * String.cs: Dictionary: Do not change the index data when using the indexer for
72 an already existing index. This is somewhat illogical and breakes obscure code situations
74 2008-05-29 Juraj Skripsky <js@hotfeet.ch>
76 * List.cs (RemoveAll, Shift): Fix leak by clearing empty array
79 2008-04-29 Juraj Skripsky <js@hotfeet.ch>
81 * Dictionary.cs (Clear, Remove): Clear empty slots in keySlots
82 and valueSlots. Otherwise the garbage collector cannot reclaim
83 the referenced key/value. Fixes bug #384723.
85 2008-04-02 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
87 * KeyNotFoundException.cs
88 * KeyValuePair.cs: Fix parameter names
90 2008-03-21 Sebastien Pouliot <sebastien@ximian.com>
92 * EqualityComparer.cs: Add null checks in GetHashCode. Fix bug
95 2007-11-05 Sebastien Pouliot <sebastien@ximian.com>
97 * Dictionary.cs: Ensure that the non-generic CopyTo works on Array.
100 2007-10-31 Miguel de Icaza <miguel@novell.com>
102 * Dictionary.cs: Do not increment curTableItem when we return
103 false. Was not necessary, just a defensive move.
105 2007-10-10 Juraj Skripsky <js@hotfeet.ch>
107 * Dictionary.cs (Enumerator.MoveNext): Handle the case where we
108 had already reached the end. Fixes bug #332534.
110 2007-08-20 Jb Evain <jbevain@novell.com>
112 * List.cs (AddCollection): return early if the collection
113 to be added is empty.
115 2007-08-08 Atsushi Enomoto <atsushi@ximian.com>
117 * Dictionary.cs : [Comvisible(true)]->[ComVisible(false)].
119 2007-06-23 Marek Safar <marek.safar@gmail.com>
121 * List.cs: Make CheckMatch static.
123 2007-06-20 Juraj Skripsky <js@hotfeet.ch>
125 * Dictionary.cs: Optimize and add implementation notes. Use a "mini-heap"
126 to store the linked lists instead of the regular heap. Split arrays of
127 structs into separate arrays to make the GC's life simpler (see bug 81879
128 for details). Make class serialization compatible with MS.NET.
130 * EqualityComparer.cs: Rename IEquatableOfTEqualityComparer<T> to
131 GenericEqualityComparer<T> to fix binary serialization compatibility
134 2006-04-16 Jonathan Chambers <joncham@gmail.com>
136 * List.cs: Clear entry in RemoveAt after removing item.
139 2007-03-27 Alan McGovern <alan.mcgovern@gmail.com>
141 * List.cs: Optimized several methods to increase performance
143 2007-03-21 Juraj Skripsky <js@hotfeet.ch>
145 * List.cs (FindAllStackBits): Small optimization to the new code.
146 Built resulting List<T> directly as an array, wrap it in a List<T>
147 afterwards. Stop the filling of the result array as soon as all
148 matching items have been processed.
150 2007-03-20 Juan Cristóbal Olivares <juancri@gmail.com>
152 * List.cs (FindAll): Optimize FindAll using a bitmask to determine
153 the number of positive matches, this increases the performance in
154 all cases below 10,000,000 elements extensively:
157 old method: 00:00:00.0126610 (26x)
158 stackalloc bit method: 00:00:00.0004750 (1x)
159 array bit method: 00:00:00.0010700 (2x)
160 heap bit method: 00:00:00.0038830 (8x)
163 old method: 00:00:00.0139250 (24x)
164 stackalloc bit method: 00:00:00.0005670 (1x)
165 array bit method: 00:00:00.0010890 (2x)
166 heap bit method: 00:00:00.0034920 (6x)
169 old method: 00:00:00.0136110 (12x)
170 stackalloc bit method: 00:00:00.0011240 (1x)
171 array bit method: 00:00:00.0016450 (1.4x)
172 heap bit method: 00:00:00.0043110 (3x)
175 old method: 00:00:00.0175970 (3x)
176 stackalloc bit method: 00:00:00.0085630 (1.5x)
177 array bit method: 00:00:00.0055010 (1x)
178 heap bit method: 00:00:00.0099590 (1.8x)
181 old method: 00:00:00.0210330 (2x)
182 array bit method: 00:00:00.0100430 (1x)
183 heap bit method: 00:00:00.0154150 (1.5x)
186 old method: 00:00:00.1243730 (1.2x)
187 array bit method: 00:00:00.0973110 (1x)
188 heap bit method: 00:00:00.1285650 (1.3x)
191 old method: 00:00:00.9252570 (1x)
192 array bit method: 00:00:00.9632300 ( 1.05x)
193 heap bit method: 00:00:01.1098490 (1.20x)
195 2007-03-08 David Mitchell <dmitchell@logos.com>
197 * List.cs: Fix the case where List.set_Item(int index) throws
198 inappropriate exception when index is equal to List.Count
200 List.IndexOf(object item) and IList.Contains(object item) throw
201 exceptions when given invalid types.
203 IList.Add(object item) throws InvalidCastException when item is
204 not of the correct type.
206 2007-03-08 Gert Driesen <drieseng@users.sourceforge.net>
208 * Comparer.cs: Renamed IComparableOfTComparer<T> to GenericComparer<T>
209 to fix binary serialization compatibility with MS.
211 2007-03-05 David Mitchell <dmitchell@logos.com>
213 * Dictionary.cs: An instance of Dictionary<TKey,TValue> is
214 supposed to throw a KeyNotFoundException when
215 the user attempts to retrieve the value associated with a key that
216 is not in the dictionary.
218 On the other hand, an instance of IDictionary is supposed to
219 return null in similar circumstances.
221 2007-03-05 David Mitchell <dmitchell@logos.com>
223 * List.cs: Fix InsertRange bug (80930).
225 2006-09-15 Gert Driesen <drieseng@users.sourceforge.net>
227 * List.cs: Fixed binary serialization compatibility with MS.NET.
228 Increment version whenever _items is modified; this fixes version
229 checks in Enumerator.
231 2006-09-06 Zoltan Varga <vargaz@gmail.com>
233 * Dictionary.cs: Speed up get_Item/set_Item/GetPrev () a bit. Increase capacity
234 specified by the user so 'capacity' elements can really be added without resizing.
236 2006-07-12 Zoltan Varga <vargaz@gmail.com>
238 * Dictionary.cs: Swap order of parameters to cmp.Equals () to improve
239 compatibility with MS.NET and strange Equals () implementations.
241 2006-05-17 Kazuki Oikawa <kazuki@panicode.com>
243 * List.cs : implemented Sort(Comparison <T>).
245 2006-05-08 Atsushi Enomoto <atsushi@ximian.com>
247 * List.cs : use proper comparer in Contains(), IndexOf() and
248 LastIndexOf(). Patch by Kazuki Oikawa. Fixed bug #77277.
250 2006-03-16 Ankit Jain <jankit@novell.com>
252 * List.cs (CheckIndex): Check for -ve indices and allow index == size.
253 (Insert): Use CheckIndex.
255 2006-03-12 Zoltan Varga <vargaz@gmail.com>
257 * List.cs: Applied patch from <kazuki@panicode.com>. Fixes #77504.
259 2006-02-10 Martin Baulig <martin@ximian.com>
262 (IComparableOfTComparer): `T' must implement `IComparable<T>' and
265 Tue Jan 24 18:22:54 CET 2006 Paolo Molaro <lupus@ximian.com>
267 * Dictionary.cs: avoid long reminder operations.
269 2006-01-23 Raja R Harinath <rharinath@novell.com>
271 Speed up remove. Use 'dict[k]=v' as a self-tuning hint.
272 * Dictionary.cs (GetSlot): Move data-structure traversal to ...
273 (GetPrev): ... this. Returns the slot prior to the place we're
274 looking for, or null if that place is the head of the chain.
276 (this.set): Use it. Implement move-to-front on set.
278 * Dictionary.cs (ToTKey, ToTValue): New helpers to convert from
280 (IDictionary.this, IDictionary.Add): Use them.
281 (IDictionary.Contains, IDictionary.Remove): If the types don't
284 2006-01-19 Raja R Harinath <rharinath@novell.com>
286 Fix to pass new nunit tests.
287 * Dictionary.cs (ShimEnumerator): New class. Implement the
288 requirement that ((IDictionary) foo).GetEnumerator ().Current has
289 type DictionaryEntry.
290 (IDictionary.GetEnumerator): Use ShimEnumerator.
291 (Enumerator.Current): Now has type KeyValuePair<TKey, TValue>.
292 (Enumerator.MoveNext): Use VerifyState.
293 (Enumerator.VerifyState): Move validation of 'current' field to ...
294 (Enumerator.CurrentSlot): ... this.
295 (Enumerator.Current, Enumerator.IDictionaryEnumerator.Entry):
297 (CopyTo, ICollection.CopyTo): Use subtle reasoning to replace a
298 '>=' with a '>'. Don't throw an ArgumentException when
299 index==array.Length && Count==0.
300 (KeyCollection.CopyTo, ValueCollection.CopyTo): Likewise, and thus
301 obviate the need to check (dictionary.Count == 0).
303 2005-12-20 Sebastien Pouliot <sebastien@ximian.com>
305 * List.cs: Applied Atsushi's patch for Sort (bug 76361) now that the
306 generic versions of Array.Sort are implemented.
308 2005-12-19 Sebastien Pouliot <sebastien@ximian.com>
310 * Dictionary.cs: Added [Serializable] attribute to both inner
311 Enumerator struct in Key and Value inner collection classes.
312 * EqualityComparer.cs: Added missing IEqualityComparer interface.
313 * List.cs: Added [Serializable] attribute to both inner Enumerator
316 2005-12-19 Sebastien Pouliot <sebastien@ximian.com>
318 * Dictionary.cs: Fixed ICollection.CopyTo to use DictionaryEntry. Fixed
319 Key and Value CopyTo not to throw exception if the dictionary is empty
321 * List.cs: Fix exception reporting to match MS behaviour (2.0 final).
323 2005-11-19 Zoltan Varga <vargaz@gmail.com>
325 * KeyNotFoundException.cs: Add default message.
327 2005-09-18 Miguel de Icaza <miguel@novell.com>
329 * Dictionary.cs: Change style for internal fields.
331 If the capacity is zero, set the capacity to our default size as 0
332 is an allowed parameter in .NET
334 2005-08-10 Kamil Skalski <nazgul@nemerle.org>
336 * KeyValuePair.cs, Dictionary.cs: Change Key and Value to properties to match
337 .NET 2.0 July CTP. Update its use in Dictionary, since now we
338 cannot write to them.
340 2005-07-10 Kamil Skalski <nazgul@nemerle.org>
342 * Comparer.cs, EqualityComparer.cs: Use MakeGenericType instead of BindGenericParameters.
345 2005-06-27 Raja R Harinath <rharinath@novell.com>
347 Introduce some thread-safety by removing the modify-on-read
348 move-to-front heuristic.
349 * Dictionary.cs (_enumeratorGeneration, _enumerators): Remove.
350 (Count): Add internal property set. Invalidate enumerators when
351 Count is changed. Change all references of _usedSlots to Count.
352 (this): Invalidate enumerators when the value of some slot is
353 changed, even if the layout of the data-structure isn't modified.
354 (DoHash): Remove null-key check. All codepaths leading to this
355 function already have the check.
356 (GetSlot): Remove move-to-front heuristic.
359 2005-06-24 Martin Baulig <martin@ximian.com>
361 * IDictionary.cs: Use the same type parameter names than on MS.
363 * IDictionary.cs, Dictionary.cs: We don't need the `CLSCompliant'
366 2005-06-23 Martin Baulig <martin@ximian.com>
368 * *.cs: Removed the `[ComVisible(false)]' attributes everywhere.
370 2005-06-22 Raja R Harinath <rharinath@novell.com>
372 * Dictionary.cs (_generation, _enumeratorGeneration, _enumerators):
373 New fields to implement fail-fast semantics. All code that
374 modifies the table increment _generation.
375 (GetSlot): Use _hcp to compare keys. Return the slot containing
376 the key, rather than the index. Avoid move-to-front heuristic
377 when there's an enumerator coursing through the table.
378 (this, Add, TryGetValue, ContainsKey, Remove): Update to change.
379 (Enumerator.Enumerator): Save the generation of the dictionary.
380 (Enumerator.Dispose): Inform dictionary that the enumerator is no more.
381 (Enumerator.MoveNext, Enumerator.VerifyState): Fail if the
382 dictionary has been modified.
384 2005-06-20 David waite <mass@akuma.org>
386 * List.cs : substantial changes and optimizations
387 (AddCollection, AddEnumerable): new internal specializations of AddRange
388 (AsReadOnly): returns specific IList<T> to match ms.net 2.0b2 api.
389 (Clear): reset size to zero on clear
390 (ConvertAll): catch null converter, use Add to prevent OutOfBounds
392 (FindAll, FindIndex, FindLast, FindLastIndex, RemoveAll, TrueForAll):
394 (FindLastIndex): correct index parameters based on ms.net 2005b2 behavior
395 (ForEach): catch null action
396 (CheckIndex): new internal function similar to CheckRange for functions
397 which only provide a starting index
398 (InsertCollection, InsertEnumerable): new internal specializations of
400 (ReadOnlyList): removed, ReadOnlyCollection in
401 System.Collections.ObjectModel is used instead now
403 2005-06-16 David Waite <mass@akuma.org>
405 * Dictionary.cs (EnumerationMode): Remove.
406 (Enumerator): Remove return type flag - legacy return is expected to
407 always return a DictionaryEntry
408 (Enumerator): Make constructor internal, it is not public on ms.net
410 (VerifyState): Added method to check state preconditions and throw
411 appropriate exceptions.
412 (KeyCollection,ValueCollection): Mark sealed to match ms.net beta 2
413 (KeyCollection.Enumerator._hostEnumerator): make exact struct type,
414 rather than boxing and using by interface
415 (KeyCollection.Enumerator.Dispose): Call _hostEnumerator.Dispose.
416 (ValueCollection.Enumerator._hostEnumerator): make exact struct type,
417 rather than boxing and using by interface
418 (ValueCollection.Enumerator.Dispose): Call _hostEnumerator.Dispose.
419 * EqualityComparer.cs (DefaultComparer, IEquatableOfTEqualityComparer):
420 Mark as serializable.
422 2005-06-16 Raja R Harinath <rharinath@novell.com>
424 * Dictionary.cs (GetKeys, GetValues): Remove.
425 (SetThreshold): New function to calculate the resize threshold.
426 (CopyTo): Don't use foreach syntax.
427 (ContainsValue): Likewise. Use default equality comparer of the
429 (GetObjectData): Use CopyTo to copy into temporary array. Don't
430 save redundant _usedSlots and _threshold.
431 (OnDeserialization): Rewrite.
432 (ICollection<>.CopyTo): Forward to CopyTo.
433 (Enumerator._nextIndex): Rename to from _index.
434 (Enumerator._next, Enumerator.FixNext): Remove.
435 (Enumerator.Current): Rewrite to avoid need for _next.
436 (Enumerator.IEnumerator.Reset): Update.
437 (KeyCollection): Is also IEnumerable<TKey> and IEnumerable.
438 Update methods to conform to standard.
439 (KeyCollection.GetEnumerator): Restore. Return the correct type.
440 (KeyCollection.Enumerator): Rename from KeyEnumerator. Simple
441 wrapper that forwards to Dictionary<,>.Enumerator.
442 (ValueCollection): Likewise.
444 2005-06-12 David Waite <dwaite@gmail.com>
446 * IKeyComparer.cs: removed
447 * KeyValuePair.cs: add same-style ToString as ms.net Beta2 impl,
448 make Serializable, use correct field names.
449 * Dictionary.cs: Miscelaneus clean-ups, added serialization
450 support, use Hashtable prime functions
452 2005-06-12 Ben Maurer <bmaurer@ximian.com>
454 * Comparer.cs, EqualityComparer.cs: Important performance hack:
455 make sure that we don't box stuff and do reflection on every
456 comparison. We use reflection at cctor time rather than on every
459 2005-06-09 Raja R Harinath <rharinath@novell.com>
461 Simplify Enumerator.MoveNext to make it "obviously correct", rather
462 than require subtle reasoning about the state of various variables.
463 * Dictionary.cs (Enumerator._isValid): Remove. Replace all uses
464 with "_current == null".
465 (Enumerator._validNodeVisited): Remove.
466 (Enumerator._next): New. Holds the the next position.
467 (Enumerator.FixNest): New helper function that ensures that _next
469 (Enumerator.MoveNext): Simplify. Now, copies _next to _current
470 and advances _next if possible.
472 2005-06-08 Martin Baulig <martin@ximian.com>
474 * Dictionary.cs (Dictionary.KeyEnumerator): Removed the public
475 GetEnumerator() function since it's returning the wrong type.
476 (Dictionary.ValueEnumerator): Likewise. Fix #75073.
478 2005-06-08 Ankit Jain <ankit@corewars.org>
480 * Dictionary.cs (Dictionary<TKey, TValue>.MoveNext): Allow traversal of chain in last slot
481 of the table. Fixes #75168.
483 2005-06-04 Ben Maurer <bmaurer@ximian.com>
485 * *.cs: 2.0 api fixups
487 2005-05-26 Miguel de Icaza <miguel@novell.com>
489 * Dictionary.cs: Remove the `Hash' name from the Dictionary
490 internal classes, make them public.
492 2005-05-26 Zoltan Varga <vargaz@freemail.hu>
494 * Dictionary.cs: Fix a warning.
496 * IDictionary.cs: Add missing TryGetValue method.
498 2005-05-19 Geoff Norton <gnorton@customerdna.com>
500 * List.cs (Insert): Resize the array before the shift if needed
502 2005-05-18 Miguel de Icaza <miguel@novell.com>
504 * List.cs (GetRange): Implement.
506 Do not do lazy loading of data. Not worth adding an
507 extra check, and not worth the bugs.
509 This decision wont be discussed until: a) a full List regression
510 test suite exists and b) performance benchmarks are created. (b)
511 depends on (a) or the argument wont even be heard.
513 2005-05-13 Atsushi Enomoto <atsushi@ximian.com>
515 * Queue.cs, Stack.cs: moved to System.dll
517 2005-05-06 Martin Baulig <martin@ximian.com>
519 * *.cs: Add CLSCompliant(true) where missing.
521 2005-05-06 Zoltan Varga <vargaz@freemail.hu>
523 * *.cs: Remove CLSCompliant(false) attributes.
525 2005-05-05 Zoltan Varga <vargaz@freemail.hu>
527 * List.cs: Applied patch from Mart Roosmaa (roosmaa@gmail.com).
528 Fix Insert method. Fixes #74824.
530 2005-04-29 Martin Baulig <martin@ximian.com>
532 Reflect latest spec changes.
534 * IEnumerable.cs (IEnumerable<T>): Implement IEnumerable.
535 * IEnumerator.cs (IEnumerator<T>): Implement IEnumerator.
537 2005-04-29 Raja R Harinath <rharinath@novell.com>
540 * Dictionary.cs (Slot<K,V>): Move to ...
541 (Dictionary<K,V>.Slot): ... here.
543 2005-04-28 Martin Baulig <martin@ximian.com>
545 * Dictionary.cs, Queue.cs, Stack.cs, List.cs, Comparer.cs: Don't
546 duplicate type parameters in the nested classes.
548 2005-04-20 Zoltan Varga <vargaz@freemail.hu>
550 * List.cs: Fix ToArray () method. Fixes #74675.
552 2005-04-04 Raja R Harinath <rharinath@novell.com>
554 * Dictionary.cs: Update to draft of Feb 27. Add some argument checks.
555 (GetSlot): Don't throw KeyNotFoundException. Unify all list
556 traversals in here. Move found key to head of chain, and return
557 the index of the chain suitable for/containing the key.
558 (Item, Add, Remove): Simplify, and remove FIXMEs.
559 (Resize): Reuse linked list nodes from old table.
560 (Dictionary.CopyTo, HashKeyCollection.CopyTo, HashValueCollection.CopyTo):
561 Add some argument checks.
563 2005-04-02 Ben Maurer <bmaurer@ximian.com>
565 * Dictionary.cs: Real impl.
567 2005-02-21 Martin Baulig <martin@ximian.com>
569 * IComparer.cs: Reverted the last change here, Equals() and
570 GetHashCode() have been removed a long time ago.
572 2005-02-21 Kazuki Oikawa <kazuki@panicode.com>
574 * IComparer.cs, IDictionary.cs: Corrected the wrong declaration.
576 2005-02-11 Carlos Alberto Cortez <calberto.cortez@gmail.com>
578 * List.cs: Added internal ReadOnlyCollection class,
579 which is a wrapper for a read only IList<T> version of the List<T>.
580 Used in AsReadOnly () method.
582 2005-02-07 Ben Maurer <bmaurer@ximian.com>
584 * List.cs (CheckRange): Comparison error. Duh!
585 (Shift): really deal with neg. delta. Also, adjust the `size'.
587 Based on a patch from Marc Denty (marc.denty@libertysurf.fr).
591 2005-01-29 Ben Maurer <bmaurer@ximian.com>
593 * Queue.cs: `duh' bugs.
595 2004-12-27 Ben Maurer <bmaurer@ximian.com>
597 * Stack.cs: Stupid bug fixes.
599 * List.cs: My new (mostly untested ;-) impl of List
600 <T>. Implements most of the API.
602 2004-12-26 Ben Maurer <bmaurer@ximian.com>
604 * Queue.cs: New, non-linked-list based impl.
606 2004-11-29 Ben Maurer <bmaurer@ximian.com>
608 * Comparer.cs: Update this class.
610 2004-11-25 Carlos Alberto Cortez <calberto.cortez@gmail.com>
612 * List.cs: Enumerator changed to behave like the MS impl.
614 2004-11-25 Ben Maurer <bmaurer@ximian.com>
616 * Stack.cs: New, list based impl. Waiting for some gmcs fixes.
618 2004-11-10 Martin Baulig <martin@ximian.com>
620 * IDictionary.cs (IDictionary): `IsReadOnly' and `Clear' are
621 inherited from ICollection.
623 2004-09-20 Gert Driesen <drieseng@users.sourceforge.net>
625 * ReadOnlyCollection.cs: Moved to System assembly
626 * Collection.cs: Moved to System assembly
628 2004-09-07 Carlos Alberto Cortez <carlos@unixmexico.org>
630 * ReadOnlyCollection.cs: New file and changes to
631 Collection.cs tu support it.
633 2004-09-05 Marek Safar <marek.safar@seznam.cz>
635 * Dictionary.cs: Added new file (no implementation).
637 2004-09-03 Carlos Alberto Cortez <carlos@unixmexico.org>
639 * Collection.cs: Small improvements related to
640 style, resizing, and type checking.
642 2004-09-01 Carlos Alberto Cortez <carlos@unixmexico.org>
644 * Collection.cs: New file.
646 2004-08-04 Martin Baulig <martin@ximian.com>
648 * List.cs (List<T>.Enumerator): Made this a struct.
649 (List<T>.GetEnumerator): The public method now returns the
652 2004-08-02 Martin Baulig <martin@ximian.com>
654 Started to do some API review.
656 * ICollection.cs (ICollection<T>): Added IsReadOnly, Add, Clear,
659 * IList.cs (IList<T>): Removed Add, Clear, Constains, Remove,
660 IsReadOnly and IsFixedSize.
662 2004-08-02 Martin Baulig <martin@ximian.com>
664 * IList.cs (IList.Add): Changed return type to void.
666 * List.cs (List.Add): Likewise.
668 2004-07-16 Martin Baulig <martin@ximian.com>
670 * IComparable.cs: Removed, it's in System.
672 2004-07-12 Duncan Mak <duncan@ximian.com>
674 * KeyNotFoundException.cs: Added.
676 2004-06-18 Ben Maurer <bmaurer@ximian.com>
678 * Comparer.cs: v2 impl. Some workarounds for gmcs are enabled.
680 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
682 * Queue.cs: Fixed possible integer overflow in CopyTo methods.
683 * Stack.cs: Fixed possible integer overflow in CopyTo methods.
685 2004-03-13 Martin Baulig <martin@ximian.com>
687 * Stack.cs, Queue.cs, List.cs: Implement the non-generic interfaces.
689 2004-03-11 Martin Baulig <martin@ximian.com>
693 2004-03-11 Martin Baulig <martin@ximian.com>
695 * Stack.cs, Queue.cs: Just use `Node' for the nested class, not
696 `Node<T>' (which would create another type parameter `T'
697 overriding `T' from the outer class).
699 2004-02-23 Martin Baulig <martin@ximian.com>
701 * Stack.cs, Queue.cs: New files. Hmm, looks like I forgot to add
702 them to CVS; they're already on my hard disk since December or so.
704 2003-12-08 Martin Baulig <martin@ximian.com>
706 * *.cs: require GENERICS.
708 2003-11-08 Ben Maurer <bmaurer@users.sourceforge.net>
710 * *.cs: require NET_2_0 and GENERICS
712 2003-11-07 Ben Maurer <bmaurer@users.sourceforge.net>
714 * IComparable.cs, IComparer.cs, IDictionary.cs, IKeyComparer.cs, KeyValuePair.cs
717 2003-11-06 Martin Baulig <martin@ximian.com>
719 * ICollection.cs, IList.cs, IEnumerator.cs, IEnumerable.cs:
720 Started to implement the System.Collections.Generic classes.