- Documentation is autogenerated on build and published to https://c5docs.azurewebsites.net/.
- C5 is now a .NET Standard 2.0 library only.
- Strong name removed.
- Memory safe optimizer removed as they are no longer needed for Unity development.
Rec<T1, T2, ...>
type removed as was an exact copy ofValueTuple<T1, T2, ...>
.- Breaking change: All
public readonly
are now properties. - Breaking change:
EventTypeEnum
is nowEventType
. - Breaking change: custom
KeyValuePair<K, V>
has been replaced by the standardSystem.Collections.Generic.KeyValue<TKey, TValue>
for better compatability.
- Support for .NET Standard and .NET Core thanks to Andrew Arnott (https://github.com/AArnott)
- Memory safe enumerators for mobile development courtesy of nbasakuragi
- KeyValuePair Serializable
- KeyValuePair.Create using type inference
- Added .NET 4.5 version:
IIndexed<T>
implementsIReadOnlyList<T>
- Fixed typos.
- Support for Universal Windows Platform
- Added .NET 4.0 build which reintroduces support for serialization
- Added .NET 3.5 build
- Update to PCL profile in NuGet package
- Mono support is now built-in as Mono 3.0.6 and Xamarin Studio supports portable libraries.
- The C5 assembly is now strong named.
- Full support for Mono.
- C5 can now be built for Mono using the
C5.Mono.sln
file.
- Included .xml file in build.
- Includes System.Core from the Portable Library Tools in build.
- Fixed binary search bug in
SortedArray
.
- The new .NET 4.0, Silverlight, and Windows Phone version. It is not backwards compatible with the 1.0 branch.
- Fixed 5 bugs found since the 1.1.0 release. Only one of this is likely to break code: the specification and implementation of the range indexer
this[i,n]
onTreeSet
was wrong.
New functionality:
-
Interface
C5.ICollection<T>
now extends generic interfaceSystem.Collections.Generic.ICollection<T>
. TheC5.ICollection<T>
interface in some cases describe different exceptions than specified bySCG.ICollection<T>
, but we have not attempted to fix this because the .NET collection implemented in some cases throw other exceptions than those specified anyway. -
Interface
C5.IList<T>
now extends interface non-generic interfaceSystem.Collections.IList
, so C5 list collections can be passed to .NET GUI components and other framework methods. -
Exception-free methods
bool TryPredecessor(T x, out T res)
bool TrySuccessor(T x, out T res)
bool TryWeakPredecessor(T x, out T res)
bool TryWeakSuccessor(T x, out T res)
have been added to the
ISorted<T>
interface and the classes that implement it. -
Added methods analogous to the above to
ISortedDictionary<K,V>
and the classes that implement it. -
Event raising on
SortedDictionary<T>
finally implemented, thanks to Marcus Griep. Hence all unit tests should now succeed. -
The missing custom comparers and equality comparers have been added for all primitive types except bool.
-
The book "The C5 Generic Collection Library" has been updated to reflect these changes.
Bugs fixed:
SortedArray<T>.UpdateOrAdd
andSortedArray<T>.FindOrAdd
did not expand the underlying array correctlyHashDictionary.UpdateOrAdd
returned the new value, not the old one.CollectionBase.StaticEquals
threw exception when exactly one argument wasnull
.HashedLinkedList<T>.Remove
could fail withNullReferenceException
.HashSet<T>.UpdateOrAdd(item, out old)
did not setold=default(T)
when item was not already in the set.HashBag<T>.CopyTo
could throw when copying from empty collection.
Bugs fixed:
SortedDictionaryBase
was not marked as[Serializable]
ArrayList.expand
did not update the array field of (other) viewsIntervalHeap::Replace
would throw an exception on one-element heap
Bugs fixed:
CircularQueue<T>
indexer was wrong- Some equality comparers created by
C5.EqualityComparer<T>.Default
were not marked serializable HashSet<T>.RetainAll
could leave internal data inconsistentTreeDictionary<K,V>
was not marked serializableHashedLinkedList<T>
problem related to tag group implementationDispose()
could fail on newly created lists
New features:
- A strong name (.snk) is included
C5.IList<T>
now derives fromSystem.Collections.Generic.IList<T>
- Added C5.build file for NAnt, due to Johan Warlander
The technical report has been updated to reflect the above changes.
First complete release.
There are lots of changes since the PreRelease:
- Interface design has been reorganized and simplified
- New functionality added (too much to describe here)
- Updated for Microsoft C#/CLI 2.0 release version
- Comprehensive documentation in ITU Technical Report ITU-TR-2006-76
First public release, essentially a preview of the library, for beta 1 of Microsoft C#/CLI 2.0.