SystemEX  Lacking
Additional generic collection types missing in .net
Interfaces

Defines the basic operations for a fixed-size or dynamic array structure, including indexed access, insertion, removal, traversal, and search utilities. More...

Collaboration diagram for Interfaces:

Classes

interface  SystemEx.Collections.Generic.Interfaces.IArray< T >
interface  SystemEx.Collections.Generic.Interfaces.IDynamicArray< T >
 Extends IArray<T> with dynamic resizing capabilities. More...
interface  SystemEx.Collections.Generic.Interfaces.ICache
interface  SystemEx.Collections.Generic.Interfaces.ICompared< in T >
interface  SystemEx.Collections.Generic.Interfaces.IContainerEx< T >
interface  SystemEx.Collections.Generic.Interfaces.IMap
interface  SystemEx.Collections.Generic.Interfaces.IMap< T, TU >
 Defines a typed map structure that stores key/value pairs as Pair<T, TU>. Provides insertion, removal, searching, traversal, and conversion utilities. More...
interface  SystemEx.Collections.Generic.Interfaces.IReadOnlyMap< T, TU >
 Defines a read‑only associative container mapping keys of type T to values of type TU . More...
interface  SystemEx.Collections.Generic.Interfaces.INode< T >
interface  SystemEx.Collections.Generic.Interfaces.IPair< T, TU >
interface  SystemEx.Collections.Generic.Interfaces.ISortedArray< T >
 Extends IArray<T> with sorting capabilities using either a comparer interface or a delegate-based sort function. More...
interface  SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >
 Extends IMap<T, TU> with sorting capabilities for key/value pairs. Sorting can be performed using a delegate or a comparer interface. More...
interface  SystemEx.Collections.Generic.Interfaces.ISortedTupleMap
 Extends ITupleMap with sorting capabilities for tuple elements. Sorting can be performed using a delegate or a comparer interface. More...
class  SystemEx.Collections.Generic.Interfaces.ListIterator< T >
class  SystemEx.Collections.Generic.Interfaces.ListIteratorExtensions
 Provides extension methods for creating iterators from List<T>.
interface  SystemEx.Collections.Generic.Interfaces.IIterator
interface  SystemEx.Collections.Generic.Interfaces.IIterator< T >
 Extends IIterator with cloning support, allowing iterators to be duplicated without affecting the original. More...
interface  SystemEx.Collections.Generic.Interfaces.IForwardIterator< T >
 Represents a forward-only iterator that exposes the current element and an end-of-range indicator. More...
interface  SystemEx.Collections.Generic.Interfaces.IBidirectionalIterator< T >
 Represents an iterator that can move both forward and backward. More...
interface  SystemEx.Collections.Generic.Interfaces.IRandomAccessIterator< T >
 Represents a random-access iterator that supports offset-based movement in addition to forward and backward stepping. More...
interface  SystemEx.Collections.Generic.Interfaces.IPairForwardIterator< T, TU >
 Represents a forward iterator over key/value pairs. More...
interface  SystemEx.Collections.Generic.Interfaces.IForeachIterator< T >
 Represents an iterator that can be used directly in foreach loops. Combines IEnumerable<T> and IEnumerator<T>. More...
class  SystemEx.Collections.Generic.Interfaces.Iterator
 Provides generic iterator algorithms such as distance calculation, searching, bounds detection, reversal, rotation, and iteration helpers.
interface  SystemEx.Collections.Generic.Interfaces.ITraverse< T >
 Defines a traversal operation over a range of elements using a specified direction and index boundaries. More...
interface  SystemEx.Collections.Generic.Interfaces.ITuple
interface  SystemEx.Collections.Generic.Interfaces.ITupleMap
interface  SystemEx.Collections.Generic.Interfaces.ITypeBuffer< T >

Enumerations

enum  SystemEx.Collections.Generic.Interfaces.TraversMode { SystemEx.Collections.Generic.Interfaces.TraversMode.Forwards , SystemEx.Collections.Generic.Interfaces.TraversMode.Backwards }

Functions

delegate CompareResult SystemEx.Collections.Generic.Interfaces.SortFunc< T, TU > (Pair< T, TU > a, Pair< T, TU > b)
delegate CompareResult SystemEx.Collections.Generic.Interfaces.SortTupleFunc (ITuple a, ITuple b)
 Delegate used to compare two tuples and return their ordering relation.
delegate CompareResult SystemEx.Collections.Generic.Interfaces.SortObjectFunc< T > (T a, T b)
 Delegate used to compare two objects of type T .
void SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.Sort ()
 Sorts the entire array using the configured comparison method.
IArray< T > SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.ToUnorderedArray ()
 Returns a new array containing the same elements but without sorting behavior.
void SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.Sort ()
 Sorts the entire map using the configured comparison method.
IMap< T, TU > SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.ToUnorderedMap ()
 Returns a new map containing the same elements but without sorting behavior.
void SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.Sort ()
 Sorts the entire tuple map using the configured comparison method.
ITupleMap SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.ToUnorderedMap ()
 Returns a new tuple map containing the same elements but without sorting behavior.

Properties

SortObjectFunc< T > SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.SortFunctions [get, set]
 Gets or sets the delegate-based sort function used to compare elements.
ICompared< T >? SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.Comparer [get, set]
 Gets or sets the comparer interface used to compare elements. If set, it overrides the delegate-based comparison.
bool SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.AutoSort [get, set]
 Enables or disables automatic sorting after modification operations.
SortFunc< T, TU > SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.SortFunctions [get, set]
 Gets or sets the delegate-based sort function used to compare key/value pairs.
ICompared< IPair< T, TU > >? SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.Comparer [get, set]
 Gets or sets the comparer interface used to compare key/value pairs. If set, it overrides the delegate-based comparison.
bool SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.AutoSort [get, set]
 Enables or disables automatic sorting after modification operations.
SortTupleFunc SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.SortFunctions [get, set]
 Gets or sets the delegate-based sort function used to compare tuples.
ICompared< ITuple >? SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.Comparer [get, set]
 Gets or sets the comparer interface used to compare tuples. If set, it overrides the delegate-based comparison.
bool SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.AutoSort [get, set]
 Enables or disables automatic sorting after modification operations.

Detailed Description

Defines the basic operations for a fixed-size or dynamic array structure, including indexed access, insertion, removal, traversal, and search utilities.

Defines a typed, fixed‑stride buffer abstraction for unmanaged element types.

Defines a map structure specialized for storing and retrieving ITuple objects. Provides tuple‑based search, traversal, and range‑insertion functionality.

A lightweight interface for serializable N‑element tuple consisting of strongly typed.

Specifies the traversal direction for iterating over a sequence.

Defines the base functionality for all iterators. Provides forward-only movement.

A random‑access iterator for List<T> that also implements IForeachIterator<T> to support foreach‑style enumeration. Provides forward, backward, and offset‑based movement.

Delegate used to compare two key/value pairs and return their ordering relation.

Represents a two‑element tuple consisting of a key and a value. Extends ITuple with strongly typed accessors and comparison helpers for the first and second elements.

Defines the basic contract for a node in a multi‑linked structure, such as a tree, graph, or intrusive node network. Provides access to the stored value and metadata about child counts.

Defines the basic contract for a map-like container that stores elements in positional order and supports indexed removal and clearing operations.

Defines the minimal functionality required for a generic container used by the SystemEx collection framework. Implementations provide indexed access, insertion, replacement, removal, and structural duplication of stored elements.

Defines a comparison interface for types that support custom ordering. Implementations return a CompareResult describing the relationship between two values.

Defines a typed cache a low-level byte buffer with position tracking, typed read/write helpers, and optional locking behavior.

Template Parameters
TThe type of elements stored in the array.
Template Parameters
TThe type being compared. The constraint allows ref struct types, enabling high‑performance stack‑only comparisons.
Template Parameters
TThe element type stored in the container.
Template Parameters
TThe type of value stored in the node.
Template Parameters
TThe type of the first element (key).
TUThe type of the second element (value).
Template Parameters
TThe key type.
TUThe value type.
Parameters
aThe first pair to compare.
bThe second pair to compare.
Returns
A CompareResult describing the ordering.
Template Parameters
TThe element type stored in the list.

ITypeBuffer<T> represents a simple, element‑oriented view over a raw byte buffer (for example a Cache). Implementations expose element access, cloning, clearing and fill semantics for unmanaged value types. All conversions between T and the underlying bytes are the responsibility of the concrete implementation.

The interface intentionally keeps the surface small and portable: implementations may perform endian conversion, bounds validation, and copy semantics as required by the runtime.

Template Parameters
TAn unmanaged value type stored in the buffer.

Enumeration Type Documentation

◆ TraversMode

Enumerator
Forwards 

Traverses elements from lower to higher indices.

Backwards 

Traverses elements from higher to lower indices.

27 {
32
37 }
@ Forwards
Traverses elements from lower to higher indices.
Definition ITraverse.cs:31
@ Backwards
Traverses elements from higher to lower indices.
Definition ITraverse.cs:36

Function Documentation

◆ Sort() [1/3]

void SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.Sort ( )

Sorts the entire array using the configured comparison method.

Implemented in SystemEx.Collections.Generic.SortedArray< T >.

◆ Sort() [2/3]

void SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.Sort ( )

Sorts the entire map using the configured comparison method.

Implemented in SystemEx.Collections.Generic.SortedMap< T, TU >.

◆ Sort() [3/3]

void SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.Sort ( )

Sorts the entire tuple map using the configured comparison method.

Implemented in SystemEx.Collections.Generic.SortedTupleMap.

◆ SortObjectFunc< T >()

delegate CompareResult SystemEx.Collections.Generic.Interfaces.SortObjectFunc< T > ( T a,
T b )

Delegate used to compare two objects of type T .

Template Parameters
TThe type being compared.
Parameters
aThe first object.
bThe second object.
Returns
A CompareResult describing the ordering.

◆ SortTupleFunc()

delegate CompareResult SystemEx.Collections.Generic.Interfaces.SortTupleFunc ( ITuple a,
ITuple b )

Delegate used to compare two tuples and return their ordering relation.

Parameters
aThe first tuple.
bThe second tuple.
Returns
A CompareResult describing the ordering.
Here is the caller graph for this function:

◆ ToUnorderedArray()

IArray< T > SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.ToUnorderedArray ( )

Returns a new array containing the same elements but without sorting behavior.

Returns
An IArray<T> containing the unsorted elements.

Implemented in SystemEx.Collections.Generic.SortedArray< T >.

◆ ToUnorderedMap() [1/2]

IMap< T, TU > SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.ToUnorderedMap ( )

Returns a new map containing the same elements but without sorting behavior.

Returns
An IMap<T, TU> containing the unsorted elements.

Implemented in SystemEx.Collections.Generic.SortedMap< T, TU >.

◆ ToUnorderedMap() [2/2]

ITupleMap SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.ToUnorderedMap ( )

Returns a new tuple map containing the same elements but without sorting behavior.

Returns
An ITupleMap containing the unsorted elements.

Implemented in SystemEx.Collections.Generic.SortedTupleMap.

Properties

◆ AutoSort [1/3]

bool SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.AutoSort
getset

Enables or disables automatic sorting after modification operations.

Implemented in SystemEx.Collections.Generic.SortedArray< T >.

74{ get; set; }

◆ AutoSort [2/3]

bool SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.AutoSort
getset

Enables or disables automatic sorting after modification operations.

Implemented in SystemEx.Collections.Generic.SortedMap< T, TU >.

110{ get; set; }

◆ AutoSort [3/3]

bool SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.AutoSort
getset

Enables or disables automatic sorting after modification operations.

Implemented in SystemEx.Collections.Generic.SortedTupleMap.

144{ get; set; }

◆ Comparer [1/3]

ICompared<T>? SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.Comparer
getset

Gets or sets the comparer interface used to compare elements. If set, it overrides the delegate-based comparison.

Implemented in SystemEx.Collections.Generic.SortedArray< T >.

69{ get; set; }

◆ Comparer [2/3]

ICompared<IPair<T, TU> >? SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.Comparer
getset

Gets or sets the comparer interface used to compare key/value pairs. If set, it overrides the delegate-based comparison.

Implemented in SystemEx.Collections.Generic.SortedMap< T, TU >.

105{ get; set; }

◆ Comparer [3/3]

ICompared<ITuple>? SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.Comparer
getset

Gets or sets the comparer interface used to compare tuples. If set, it overrides the delegate-based comparison.

Implemented in SystemEx.Collections.Generic.SortedTupleMap.

139{ get; set; }

◆ SortFunctions [1/3]

SortObjectFunc<T> SystemEx.Collections.Generic.Interfaces.ISortedArray< T >.SortFunctions
getset

Gets or sets the delegate-based sort function used to compare elements.

Implemented in SystemEx.Collections.Generic.SortedArray< T >.

63{ get; set; }

◆ SortFunctions [2/3]

SortFunc<T, TU> SystemEx.Collections.Generic.Interfaces.ISortedMap< T, TU >.SortFunctions
getset

Gets or sets the delegate-based sort function used to compare key/value pairs.

Implemented in SystemEx.Collections.Generic.SortedMap< T, TU >.

99{ get; set; }

◆ SortFunctions [3/3]

SortTupleFunc SystemEx.Collections.Generic.Interfaces.ISortedTupleMap.SortFunctions
getset

Gets or sets the delegate-based sort function used to compare tuples.

Implemented in SystemEx.Collections.Generic.SortedTupleMap.

133{ get; set; }