A simple random-access iterator for array-based data structures. Provides forward, backward, and offset-based movement.
More...
|
| | SystemEx.Collections.Generic.CacheIsSharedException.CacheIsSharedException () |
| | Exception thrown when an operation is attempted on a shared or locked cache.
|
| | SystemEx.Collections.Generic.Cache.Cache (long capacity, CacheType type=CacheType.OnlySystem) |
| | Initializes a new cache with the specified capacity and type.
|
| void | SystemEx.Collections.Generic.Cache.SetZero () |
| | Set Cache to Zero.
|
| void | SystemEx.Collections.Generic.Cache.Clear () |
| | See SetZero.
|
| | SystemEx.Collections.Generic.Cache.Cache (byte[] arr, CacheType type) |
| | Initializes a new cache from given array.
|
| | SystemEx.Collections.Generic.Cache.Cache (FixedVector< byte > arr, CacheType type) |
| | Initializes a new cache from given array.
|
| | SystemEx.Collections.Generic.Cache.Cache (Cache cache) |
| | Create a Copy from stream.
|
| ulong | SystemEx.Collections.Generic.Cache.Seek (SeekOrigin org, int pos) |
| | Moves the internal position according to the specified origin and offset.
|
| virtual ulong | SystemEx.Collections.Generic.Cache.WriteRange (ulong position, byte[] data) |
| | Writes a byte range into the cache starting at the specified position.
|
| virtual ulong | SystemEx.Collections.Generic.Cache.WriteRange (ulong start, ulong iend, byte[] data) |
| | Writes a byte range into the cache between start and iend .
|
| static unsafe byte[] | SystemEx.Collections.Generic.Cache.ToBytes< T > (ref T value) |
| | Converts an unmanaged value to its raw byte representation.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, uint value, Endian endian) |
| | Writes a 32-bit unsigned integer at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, int value, Endian endian) |
| | Writes a 32-bit signed integer at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, short value, Endian endian) |
| | Writes a 16-bit signed short at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, char value) |
| | Writes a character at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, byte value) |
| | Writes a byte at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, ushort value, Endian endian) |
| | Writes a 16-bit unsigned short at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, long value, Endian endian) |
| | Writes a 64-bit signed long at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, ulong value, Endian endian) |
| | Writes a 64-bit unsigned long at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, float value, Endian endian) |
| | Writes a single-precision floating-point value at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (ulong position, double value, Endian endian) |
| | Writes a double-precision floating-point value at the specified position.
|
| uint | SystemEx.Collections.Generic.Cache.ReadUInt (ulong position, Endian endian) |
| | Reads a 32-bit unsigned integer from the specified position.
|
| int | SystemEx.Collections.Generic.Cache.ReadInt (ulong position, Endian endian) |
| | Reads a 32-bit signed integer from the specified position.
|
| short | SystemEx.Collections.Generic.Cache.ReadShort (ulong position, Endian endian) |
| | Reads a 16-bit signed short from the specified position.
|
| ushort | SystemEx.Collections.Generic.Cache.ReadUShort (ulong position, Endian endian) |
| | Reads a 16-bit unsigned short from the specified position.
|
| long | SystemEx.Collections.Generic.Cache.ReadLong (ulong position, Endian endian) |
| | Reads a 64-bit signed long from the specified position.
|
| ulong | SystemEx.Collections.Generic.Cache.ReadULong (ulong position, Endian endian) |
| | Reads a 64-bit unsigned long from the specified position.
|
| char | SystemEx.Collections.Generic.Cache.ReadChar (ulong position) |
| | Reads a single character from the specified position.
|
| float | SystemEx.Collections.Generic.Cache.ReadFloat (ulong position, Endian endian) |
| | Reads a single-precision floating-point value from the specified position.
|
| double | SystemEx.Collections.Generic.Cache.ReadDouble (ulong position, Endian endian) |
| | Reads a double-precision floating-point value from the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Write (byte data) |
| | Writes a single byte at the current position and advances the position.
|
| byte | SystemEx.Collections.Generic.Cache.Read (ulong position) |
| | Reads a single byte from the specified position.
|
| virtual ? byte[] | SystemEx.Collections.Generic.Cache.ReadRange (ulong position, uint count) |
| | Reads a range of bytes starting at the specified position.
|
| virtual FixedVector< byte > | SystemEx.Collections.Generic.Cache.ReadRangeEx (ulong position, uint count) |
| | Reads a range of bytes starting at the specified position.
|
| int | SystemEx.Collections.Generic.Cache.Read (byte[] buffer, int offset, int count) |
| | Reads bytes into the specified buffer and advances the internal position.
|
| int | SystemEx.Collections.Generic.Cache.Write (byte[] buffer, int offset, int count) |
| | Writes bytes from the specified buffer and advances the internal position.
|
| byte[] | SystemEx.Collections.Generic.Cache.ToArray () |
| | Returns a copy of the internal buffer.
|
| FixedVector< byte > | SystemEx.Collections.Generic.Cache.ToArrayEx () |
| | Returns a copy of the internal buffer, as Array<T>.
|
| virtual ContainerFlexSpan< byte, FixedVector< byte > > | SystemEx.Collections.Generic.Cache.AsFlexSpan (FlexSpanMode mode=FlexSpanMode.System) |
| | Creates a FlexSpan view over the valid portion of this array. The span does not copy data; it directly references the internal buffer.
|
| virtual ContainerFlexSpan< byte, FixedVector< byte > > | SystemEx.Collections.Generic.Cache.AsFlexSpan (long start, FlexSpanMode mode=FlexSpanMode.System) |
| | Creates a FlexSpan view starting at the specified offset. The span references the internal buffer directly and does not allocate.
|
| virtual ContainerFlexSpan< byte, FixedVector< byte > > | SystemEx.Collections.Generic.Cache.AsFlexSpan (long start, long endi, FlexSpanMode mode=FlexSpanMode.System) |
| | Creates a FlexSpan view starting at the specified offset. The span references the internal buffer directly and does not allocate.
|
| | SystemEx.Collections.Generic.Find< T, TContainer >.Find (ref TContainer container) |
| | Initializes a new search helper bound to the specified container.
|
| long | SystemEx.Collections.Generic.Find< T, TContainer >.First (T value) |
| | Returns the index of the first occurrence of the specified value. If the value is not found, -1 is returned.
|
| long | SystemEx.Collections.Generic.Find< T, TContainer >.First (Func< T, bool > pred) |
| | Returns the index of the first element matching the given predicate. If no element matches, -1 is returned.
|
| long | SystemEx.Collections.Generic.Find< T, TContainer >.Last (T value) |
| | Returns the index of the last occurrence of the specified value. If the value is not found, -1 is returned.
|
| long | SystemEx.Collections.Generic.Find< T, TContainer >.Last (Func< T, bool > pred) |
| | Returns the index of the last element matching the given predicate. If no element matches, -1 is returned.
|
| int | SystemEx.Collections.Generic.Find< T, TContainer >.Of (T value) |
| | Counts how many elements in the container equal the specified value.
|
| int | SystemEx.Collections.Generic.Find< T, TContainer >.Where (Func< T, bool > pred) |
| | Counts how many elements in the container satisfy the given predicate.
|
| bool | SystemEx.Collections.Generic.Find< T, TContainer >.Exists (T value) |
| | Determines whether the container contains at least one element equal to the specified value.
|
| bool | SystemEx.Collections.Generic.Find< T, TContainer >.TryGet (T Key, out int index) |
| | Attempts to find the index of the specified key.
|
| long | SystemEx.Collections.Generic.Find< T, TContainer >.LowerBound (T key, ISimpleCompare< T > cmp) |
| | Finds the first index at which the element is not smaller than the specified key. The comparison is performed using the provided ISimpleCompare<T> predicate, which defines the relation a < b.
|
| long | SystemEx.Collections.Generic.Find< T, TContainer >.UpperBound (T key, ISimpleCompare< T > cmp) |
| | Finds the first index at which the element is strictly larger than the specified key. The comparison is performed using the provided ISimpleCompare<T> predicate, which defines the relation a < b.
|
|
delegate void | SystemEx.Collections.Generic.SortAction< TCompare, TContainer > (ref TContainer container, TCompare comparer) |
| | SystemEx.Collections.Generic.Set< T, TContainer >.Set (ref TContainer keys, SortAction< ISimpleCompare< T >, TContainer >? sorter=null) |
| | Creates a new sorted view over the given container. The container reference is stored and immediately sorted using the comparer and with an optional sort delegate.
|
| | SystemEx.Collections.Generic.Set< T, TContainer >.Set (ref TContainer keys, ISimpleCompare< T > comparer, SortAction< ISimpleCompare< T >, TContainer >? sorter=null) |
| | Creates a new sorted view over the given container. The container reference is stored and immediately sorted using the comparer and with an optional sort delegate.
|
| T[] | SystemEx.Collections.Generic.Set< T, TContainer >.Extract (long index) |
| | Extracts all elements starting at the given index. The extracted elements are removed from the underlying container and returned as a new array.
|
| bool | SystemEx.Collections.Generic.Set< T, TContainer >.Insert (T value) |
| | Inserts a value into the container and re-sorts the elements.
|
| bool | SystemEx.Collections.Generic.Set< T, TContainer >.Insert (long index, T value) |
| | Inserts a value at the specified index and re-sorts the elements.
|
| bool | SystemEx.Collections.Generic.Set< T, TContainer >.Insert (long start, long end, T value) |
| | Inserts a value into a range and re-sorts the elements.
|
| bool | SystemEx.Collections.Generic.Set< T, TContainer >.InsertRange (long start, T[] values) |
| | Inserts multiple values starting at the specified index and re-sorts the elements.
|
| bool | SystemEx.Collections.Generic.Set< T, TContainer >.Validate () |
| | Validates the internal ordering of the set. The container must be sorted according to the comparison function.
|
| bool | SystemEx.Collections.Generic.Set< T, TContainer >.Erase (long index) |
| | Removes the element at the specified index and re-sorts the remaining elements.
|
| bool | SystemEx.Collections.Generic.Set< T, TContainer >.Erase (long first, long last) |
| | Removes a continuous range of elements from the underlying container. The range is defined by the start index first and the end index last . If the removal succeeds, the set is re-sorted to maintain ordering guarantees.
|
| bool | SystemEx.Collections.Generic.Set< T, TContainer >.Erase (T value) |
| | Removes the first occurrence of the specified value from the set. The element is located using the internal finder. If the element exists, it is removed from the underlying container. After removal, the set is re-sorted to preserve ordering guarantees.
|
| void | SystemEx.Collections.Generic.Set< T, TContainer >.SwapIn (Set< T, TContainer > other) |
| | Moves all elements from this set into the specified target set. The elements are copied into a temporary array, removed from the underlying container of this set, and then inserted into the target set. After insertion, the target set is re-sorted to maintain ordering guarantees. This set becomes empty after the operation.
|
| bool | SystemEx.Collections.Generic.Set< T, TContainer >.Equals (Set< T, TContainer > other) |
| | Compares this set with another set for structural equality. Both sets must contain the same number of elements and each element at the same position must be equal. The comparison assumes both containers are sorted and aligned.
|
| void | SystemEx.Collections.Generic.Set< T, TContainer >.Merge (Set< T, TContainer > source) |
| | Merges all unique elements from the specified source set into this set. Each element in source is checked using the internal finder. If this set does not contain the element, it is extracted from the source and inserted into this set. Elements already present in this set remain in the source. No elements are duplicated.
|
| IContainerEx< T > | SystemEx.Collections.Generic.Set< T, TContainer >.GetSorted () |
| | Returns a sorted value copy of the underlying container.
|
| | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.UnorderedMultiSet (ref TContainer keys) |
| | Creates a new unsorted view over the given container.
|
| T[] | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.Extract (long index) |
| | Extracts all elements starting at the given index. The extracted elements are removed from the underlying container and returned as a new array.
|
| bool | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.Insert (T value) |
| | Inserts a value into the container.
|
| bool | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.Insert (long index, T value) |
| | Inserts a value at the specified index.
|
| bool | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.Insert (long start, long end, T value) |
| | Inserts a value into a range.
|
| bool | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.InsertRange (long start, T[] values) |
| | Inserts multiple values starting at the specified index.
|
| bool | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.Validate () |
| | tests is this view validated return only true
|
| bool | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.Erase (long index) |
| | Removes the element at the specified index.
|
| bool | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.Erase (long first, long last) |
| | Removes a continuous range of elements from the underlying container. The range is defined by the start index first and the end index last .
|
| bool | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.Erase (T value) |
| | Removes the first occurrence of the specified value from the UnorderedMultiSet. The element is located using the internal finder. If the element exists, it is removed from the underlying container.
|
| void | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.SwapIn (UnorderedMultiSet< T, TContainer > other) |
| | Moves all elements from this UnorderedMultiSet into the specified target UnorderedMultiSet. The elements are copied into a temporary array, removed from the underlying container of this UnorderedMultiSet, and then inserted into the target UnorderedMultiSet. This UnorderedMultiSet becomes empty after the operation.
|
| bool | SystemEx.Collections.Generic.UnorderedMultiSet< T, TContainer >.Equals (UnorderedMultiSet< T, TContainer > other) |
| | Compares this UnorderedMultiSet with another UnorderedMultiSet for structural equality. Both UnorderedMultiSets must contain the same number of elements and each element at the same position must be equal. The comparison assumes both containers are sorted and aligned.
|
A simple random-access iterator for array-based data structures. Provides forward, backward, and offset-based movement.
A dynamic Vector implementation that supports optional auto-growth, indexed access, insertion, removal, traversal, and basic search operations.
Represents an unordered set view over an underlying container. Elements are not sorted and no ordering guarantees are provided. Duplicate values are not allowed. All operations work directly on the underlying container without applying any sorting logic.
A typed view over a raw Cache that exposes elements of an unmanaged type T .
A dynamic, list‑backed map structure that stores ITuple objects. Provides tuple‑based lookup, traversal, range operations, and key/value convenience helpers.
This implementation allows arbitrary tuple arity, but assumes that index 0 represents the key and index 1 represents the value.
Represents a dynamic list of ITuple objects.
Provides filtering utilities, indexed access, and basic list operations for working with heterogeneous tuple collections.
A dynamically sized tuple storing elements as object values. Provides indexed access, mutation, and compatibility with the ITuple interface used throughout the SystemEx collection and iterator framework.
A lightweight, serializable three‑element tuple consisting of strongly typed first, second, and third values. Implements ITuple and IEquatable<T> for structural comparison.
A segmented cache implementation that splits a large logical address space into multiple fixed-size cache segments.
The first segment is the base Cache instance, while all additional segments are stored in an internal array of ICache.
A specialized Node<T> that represents a star‑shaped structure, where the node may have an arbitrary number of child nodes.
Represents a logical sub‑stack inside a shared stack buffer. A layer defines its own independent boundaries and a current pointer, allowing multiple virtual stacks to coexist within the same array.
A tuple map that maintains its elements in sorted order.
Sorting is performed using either a custom ICompared<T> implementation or a delegate of type SortTupleFunc.
The map automatically re-sorts itself after insertions when AutoSort is enabled.
A tuple list that maintains its elements in sorted order.
Sorting is performed using either a custom ICompared<T> implementation or a delegate of type SortTupleFunc.
The map automatically re-sorts itself after insertions when AutoSort is enabled.
A sorted tuple map that allows multiple entries with identical tuple keys.
Unlike SortedTupleMap, which prevents duplicate tuples, SortedMultiTupleMap accepts all items without duplicate checks while still maintaining full sorting behavior.
A map that maintains its elements in sorted order using either a custom comparer (ICompared<T>) or a delegate-based sorting function (SortFunc<T, TU>).
Sorting is performed eagerly whenever elements are added or inserted, depending on the AutoSort setting.
A fixed-size array that supports automatic sorting using either a comparer interface or a delegate-based sort function. Sorting can be triggered manually or automatically after insert and remove operations.
A dynamically sized array that supports automatic sorting using either a comparer interface or a delegate-based sort function. Sorting can be triggered manually or automatically after insert, add, or remove operations.
Defines a sorting action used by the Set wrapper. The delegate receives the underlying container and its comparer and performs a complete sort operation on the container's elements.
A simple fixed‑size FIFO queue implemented as a thin wrapper around a Deque<T>.
Provides enqueue and dequeue operations using the deque’s front/back insertion and removal semantics.
A lightweight, serializable four‑element tuple consisting of strongly typed first, second, third, and fourth values.
Implements ITuple for indexed access and structural comparison.
Iterator for PriorityQueueEx<T, TU> that consumes elements in priority order.
Each call to Forward dequeues the next element from the underlying priority queue.
A lightweight, serializable two‑element tuple consisting of a strongly typed key and value. Implements IPair<T, TU> and provides typed comparison helpers as well as ITuple compatibility.
Represents a slice over intrusive Node<T> structures, defined by a starting iterator and a fixed length.
Conceptually similar to Span<T>, but operating on your intrusive node/iterator system instead of contiguous memory.
Represents a simple range defined by a begin and end iterator over intrusive Node<T> structures.
Conceptually similar to std::ranges::subrange, but designed specifically for your intrusive node and iterator system.
Defines the supported traversal orders for Node<T> structures.
A tuple map that allows multiple entries with identical tuple keys.
Unlike TupleMap, which prevents duplicate tuples,.
A map that allows multiple entries with the same key.
Unlike Map<T, TU>, which prevents duplicate pairs, a MultiMap<TT, TU> accepts all entries without checking for existing keys or values.
A cache that maintains a mirrored copy of all written data.
Every write operation is performed on the primary cache and a reversed (byte‑mirrored) version of the data is written to the secondary cache.
During reads, both caches are compared to ensure data integrity.
A dynamic map storing Pair<T, TU> elements in a list.
The map supports duplicate keys but prevents duplicate pairs unless explicitly overridden.
Provides key lookup, value lookup, traversal, range operations, and indexed access.
Represents a grouping node that stores an arbitrary number of intrusive Node<T> instances inside a standard List<T>.
Unlike Node<T>’s own Prev/Next chain, a GroupNode<T> does not form a linked structure; it simply aggregates nodes into a collection.
A fixed‑size map storing Pair<T, TU> elements in a contiguous array.
Unlike dynamic maps, a FixedMap<T, TU> never grows: once the capacity is reached, no further insertions are possible.
A fixed-size array container that provides indexed access, insertion, traversal, and basic search operations. Unlike dynamic arrays, this structure never grows and always maintains a constant capacity.
Provides search operations over a container implementing IContainerEx<T>. This struct performs non‑modifying lookups such as first/last occurrence, existence checks and counting matches.
A simple fixed‑size double‑ended queue (deque) implemented using a linear array. Supports pushing and popping at both the front and the back.
This implementation does not use a ring buffer; shifting is performed when inserting or removing at the front.
Defines how the search algorithm treats edge weights during traversal.
Specifies the access mode of a Cache instance.
A fixed-size queue that stores up to two elements. When full, the oldest element is automatically removed to make room for a new one.
- Template Parameters
-
| T | The element type stored in the underlying array. |
- Template Parameters
-
| T | The type of elements stored in the queue. |
- Template Parameters
-
| T | The type of elements stored in the deque. |
Example usage with a vector:
var vec = new vector<int>( new int[]{10, 20, 30, 40 } );
var finder = new Find<int, vector<int>>(ref vec);
long first20 = finder.First(20);
long last20 = finder.Last(20);
int count20 = finder.Of(20);
bool exists30 = finder.Exists(30);
- Template Parameters
-
| T | The element type stored inside the container. |
| TContainer | The container type implementing IContainerEx<T> used as the search target. |
- Template Parameters
-
| T | The key type |
| TU | The value type |
- Template Parameters
-
| T | The value type stored in the underlying nodes. |
- Template Parameters
-
| T | The key type (non‑null). |
| TU | The value type (non‑null). |
- Template Parameters
-
| TT | The key type (non‑null). |
| TU | The value type (non‑null). |
- Template Parameters
-
| T | The value type stored in the underlying nodes. |
var range = new NodeRange<int>(node.First(), node.At(10));
foreach (var x in range) Console.WriteLine(x);
- Template Parameters
-
| T | The value type stored in the underlying nodes. |
var slice = new NodeSlice<int>(node.At(5), 10);
foreach (var x in slice) Console.WriteLine(x);
- Template Parameters
-
| T | The type of the first element (key). |
| TU | The type of the second element (value). |
- Template Parameters
-
| T | The stored value type. |
| TU | The priority type (must implement INumber<TU>). |
- Template Parameters
-
| TT | The type of the first element. |
| TU | The type of the second element. |
| TW | The type of the third element. |
| TJ | The type of the fourth element. |
- Template Parameters
-
| T | The type of elements stored in the queue. |
- Template Parameters
-
| TCompare | Comparer type used to compare two elements. |
| TContainer | Container type implementing IContainerEx for T. |
- Parameters
-
| container | Reference to the container whose elements should be sorted. |
| comparer | Comparer used to determine the ordering of elements. |
- Template Parameters
-
| T | The type of elements stored in the array. |
- Template Parameters
-
| T | The type of elements stored in the array. |
- Template Parameters
-
| T | The key type. |
| TU | The value type. |
- Template Parameters
-
| T | The value type stored in the node. |
This class supports large continuous write operations by automatically determining the correct segment and offset for each write.
Writes may span multiple segments, and data is written chunk-by-chunk using a temporary FixedArray<T> buffer.
- Template Parameters
-
| TT | The type of the first element. |
| TU | The type of the second element. |
| TW | The type of the third element. |
TypeBuffer<T> provides element access, cloning, clearing and simple fill semantics for fixed‑stride unmanaged types. The buffer owns an internal Cache instance sized to length * sizeof(T). All reads and writes perform endian conversion using the configured Endian value.
This type assumes T is an unmanaged value type and uses a fixed stride equal to sizeof(T). Index and offset parameters are validated by the underlying cache and may throw on out‑of‑range access.
- Template Parameters
-
| T | An unmanaged value type stored in the buffer. |
- Template Parameters
-
| T | The element type stored in the container. |
| TContainer | The container type that stores the elements. Must implement IContainerEx for the same element type. |
- Template Parameters
-
| T | The element type stored in the container. |
| TContainer | The container type that stores the elements. Must implement IContainerEx for the same element type. |
- Template Parameters
-
| T | The element type stored in the Vector. |