Skip to content

.NET Collection classes offering automatic container references and element indexing by key

License

Notifications You must be signed in to change notification settings

grammophone/Grammophone.GenericContentModel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grammophone.GenericContentModel

This .NET Standard 2.0 library offers various collection extensions. These include automatic indexing by a key field of their elements, automatic "composite pattern", i.e. elements automatically aware of their "owner" who exclusively holds their collection, multivalued dictionaries, in read-only and read-write variants.

Element types that are indexed by a key field of type K must implicitly or explicitly implement IKeyedElement<K>. Element types that are aware of their owner of type P must implement IChild<P>. Element types that support both of the above should implement IKeyedChild<K, P>. The UML diagram of these interfaces follows:

Keyed and owned elements interfaces

The collection interfaces offered are shown on the next UML diagram. All interfaces have serializable concrete implementations with corresponding name. In the interface and class names, the 'Bag' is a simple collection with Count discoverable in O(1), 'Children' is an owner-aware collection having elements which are also owner-aware, 'Sequence' or 'Ordered' is an ordered collection, 'Map' or 'Keyed' is a indexing collection aware of element keys.

Interface hierarchy of content models

This library has no dependencies.

About

.NET Collection classes offering automatic container references and element indexing by key

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages