Skip to content

Releases: DevAM-Tools/LargeCollections

8.0.1

07 Dec 09:44

Choose a tag to compare

8.0.1

Fix missing upgrade to major version 8

8.0.0

07 Dec 09:41

Choose a tag to compare

8.0.0

LargeBPlusTree

  • Self-balancing B+Tree for sorted key-value storage
  • O(log n) insert, delete, and lookup operations
  • Efficient range queries with in-order iteration
  • Factory methods for ascending/descending order with struct comparers

LargeKDTree

  • High-performance KD-Tree for spatial indexing
  • Implicit array layout (no pointer chasing)
  • Allocation-free nearest neighbor and range queries
  • Struct-based point accessors for JIT devirtualization

LargeBKDTree

  • Block-based KD-Tree variant for large point sets
  • Optimized for range queries and bounding box searches

Hash Collections (LargeSet, LargeDictionary)

  • Replaced open addressing with separate chaining
  • Index-based linking using HashEntry<T> struct (similar to .NET Dictionary)
  • Free-list for efficient entry reuse after deletions
  • Extend capacity before adding to avoid mid-operation rehashing

Enumerator Optimizations

  • New LargeStorageEnumerator<T> struct enumerator for LargeList
  • New LargeSpanEnumerator<T> and ReadOnlyLargeSpanEnumerator<T>
  • Direct chunk-by-chunk storage access instead of yield-based iteration
  • GetEnumerator() now returns struct enumerator for foreach optimization

Storage Optimizations

  • StorageGetRef, StorageGet, StorageSet: Inline index calculation (removed StorageGetIndex call)
  • StorageSwap: Direct index computation instead of 4 method calls
  • New GetStructEnumerator() and AsStructEnumerable() extension methods

Other Changes

  • Removed unnecessary [MethodImpl(AggressiveInlining)] from yield-based methods
  • Updated README with user-friendly descriptions
  • Added PackageTags: BPlusTree, KDTree, BKDTree, SpatialIndex, RangeQuery, NearestNeighbor

7.0.0

01 Dec 17:26

Choose a tag to compare

-Refactor code structure for improved readability and maintainability

6.0.0

12 Nov 18:09

Choose a tag to compare

6.0.0

-Add LargeSpan and ReadOnlyLargeSpan for enhanced slicing capabilities
-Add LargeLinkedList
-bug fixes
-Refactor LargeDictionary
-Rewrite tests

5.0.2

17 Oct 14:47

Choose a tag to compare

5.0.2

-Fix major bug in StorageResize

5.0.1

16 Oct 16:15

Choose a tag to compare

5.0.1

-Fix span API conditions

-Add net6.0 and net8.0 as target framework

5.0.0

08 Oct 18:35

Choose a tag to compare

-Add LargeObservableCollection and ReadOnlyLargeObservableCollection
-Interface redesign
-Bug fixes
-Improve Tests
-Upgrade sln to slnx

4.0.0

21 Aug 15:03

Choose a tag to compare

-Bug fixes
-Performance improvements
-API improvements
-Improved test coverage
-netstandard2.0 support