Click or drag to resize

Welcome to KaosCollections

KaosCollections is a .NET library that provides generic collection classes for storing elements that are both sorted and indexed. Based on order statistic B+ trees, the classes that emulate Microsoft's SortedDictionary and SortedSet provide greater capability than their counterparts while outperforming them for large collection sizes. Also included is a sorted map class and a sorted bag class. All classes provide getting elements by index, getting the index of an element, range removal by index, range enumeration, and more.

The primary types provided are:

This library is built as a .NET Standard project with multitargeting to:

  • .NET Standard 1.0. Use this for any .NET Core application. This target does not include binary serialization support.
  • .NET Framework 4.5. This target implements the full API.
  • .NET Framework 4.0. This target does not include IReadOnlyDictionary or IReadOnlyCollection implementation.
  • .NET Framework 3.5. This target does not include IReadOnlyDictionary, IReadOnlyCollection implementation. It does not derive from ISet but does implement its members.
Library installation

To install using Package Manager:

  • Install-Package Kaos.Collections -Version 4.2.0

To install using the .NET CLI:

  • dotnet add package Kaos.Collections --version 4.2.0

To install using the Visual Studio gallery:

  1. Click Manage NuGet Packages.
  2. Select package source of nuget.org.
  3. Click Browse and input Kaos.Collections.
  4. The package should appear. Click Install. As a multitargeted package, the appropriate binary will be installed for your program.

To install using a direct reference to a .dll binary:

  1. Download the .nuget package from either:

  2. As archives, individual binaries may be extracted from the .nuget package for specific platforms. A project may then reference the extracted platform-specific .dll directly.

Documentation

Installing as a NuGet package will provide IntelliSense and object browser documentation from the .xml file.

For complete documentation:

An offline version is available as a .chm file. This file may need to be unblocked using the file properties dialog:

Examples, benchmarks, and roadmap may be viewed here:

Build

Complete source code with embedded XML documentation is hosted at GitHub. This repository is a single Visual Studio solution with additional files in the root:

Building the library requires Visual Studio 2017 or greater:

Building documentation requires Sandcastle Help File Builder:

See Also