Velentr.Collections 2.0.2

.NET 6.0
dotnet add package Velentr.Collections --version 2.0.2
NuGet\Install-Package Velentr.Collections -Version 2.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Velentr.Collections" Version="2.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Velentr.Collections --version 2.0.2
#r "nuget: Velentr.Collections, 2.0.2"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Velentr.Collections as a Cake Addin
#addin nuget:?package=Velentr.Collections&version=2.0.2

// Install Velentr.Collections as a Cake Tool
#tool nuget:?package=Velentr.Collections&version=2.0.2

Velentr.Collections

A variety of helpful collections.

Installation

NuGet version (Velentr.Collections)

A nuget package is available: Velentr.Collections

Available Collections

Namespace Collection Description Min Supported Library Version Example Usage
Collections.Concurrent ConcurrentLimitedPriorityQueue A priority queue that utilizes a list of available priorities based on a PriorityConverter 1.0.0 var c = new ConcurrentLimitedPriorityQueue<int, string>(new StringPriorityConverter());
Collections.Concurrent ConcurrentPriorityQueue A priority queue that has priorities available based on the QueuePriority enum 1.0.0 var c = new ConcurrentPriorityQueue<string>();
Collections.Concurrent ConcurrentPool A pool of objects that can be used to hold objects and define a maximum amount. More efficient generally for games as it can help reduce garbage collection 1.0.0 var c = new ConcurrentPool<object>();
Collections.LockFree LockFreeLimitedPriorityQueue A priority queue that utilizes a list of available priorities based on a PriorityConverter 1.0.0 var c = new LockFreeLimitedPriorityQueue<int, string>(new StringPriorityConverter());
Collections.LockFree LockFreePriorityQueue A priority queue that has priorities available based on the QueuePriority enum 1.0.0 var c = new LockFreePriorityQueue<string>();
Collections.LockFree LockFreePool A pool of objects that can be used to hold objects and define a maximum amount. More efficient generally for games as it can help reduce garbage collection 1.0.0 var c = new LockFreePool<object>();
Collections.LockFree LockFreeQueue A lock-free Queue implementation 1.0.0 var c = new LockFreeQueue<string>();
Collections.LockFree LockFreeStack A lock-free Stack implementation 1.0.0 var c = new LockFreeStack<string>();
Collections OrderedDictionary A Collection that combines functionality of a dictionary and a list. 1.1.0 var c = new OrderedDictionary<string, List<string>>();
Collections SizeLimitedOrderedDictionary A Collection that combines functionality of a dictionary and a list and that is also limited in max capacity. 1.1.3 var c = new OrderedDictionary<string, List<string>>();
Collections DictionaryCache A Thread-Safe and Lock-Free dictionary optimized for reads 1.1.0 var c = new DictionaryCache<string, int>();
Collections SizeLimitedList A list that is limited in max capacity 1.1.0 var c = new SizeLimitedList<string>();
Collections HistoryCollection A collection implementing undo and redo functionality 1.2.0 var c = new HistoryCollection<string>();
Collections BiDirectionalDictionary A bi-directional dictionary, where you can access the value for a key/value pair using the key or vice-versa 1.2.0 var c = new HistoryCollection<string>();

NOTES:

  • Collections.Concurrent collections: Collections under this namespace utilize .NET Concurrent collections internally
  • Lock-Free: Collections under this namespace utilize custom lock-free base collections

Deprecated Collections

Collection Description Max Supported Library Version
Bank A Collection that combines functionality of a dictionary and a list. Renamed to OrderedDictionary in 1.1.0. 1.0.5
Cache A Thread-Safe and Lock-Free dictionary optimized for reads. Renamed to DictionaryCache in 1.1.0. 1.0.5

Future Plans

See list of issues under the Milestones: https://github.com/vonderborch/Velentr.Collections/milestones

Product Versions
.NET net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (16)

Showing the top 5 NuGet packages that depend on Velentr.Collections:

Package Downloads
Velentr.Miscellaneous

Miscellaneous helper methods and things that are useful for various purposes.

Velentr.Font.Monogame

An alternative solution for Monogame/FNA/XNA-derived frameworks that utilizes SharpFont to draw text rather than the traditional SpriteFont approach.

Velentr.Font.FNA

An alternative solution for Monogame/FNA/XNA-derived frameworks that utilizes SharpFont to draw text rather than the traditional SpriteFont approach.

Velentr.Input.FNA

A simple and easy-to-use input library for XNA/Monogame/FNA.

Velentr.Input.Monogame

A simple and easy-to-use input library for XNA/Monogame/FNA.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.2 476 11/17/2022
2.0.1 142 11/17/2022
2.0.0 140 11/17/2022
1.2.3 322 7/26/2022
1.2.2 704 5/20/2022
1.2.1 236 5/20/2022
1.2.0 2,705 11/10/2021
1.1.3 1,935 4/28/2021
1.1.2 321 4/28/2021
1.1.1 259 4/28/2021
1.1.0 252 4/28/2021
1.0.5 964 4/15/2021
1.0.4 263 4/15/2021
1.0.3 685 4/15/2021
1.0.2 236 4/15/2021
1.0.1 1,745 4/6/2021
1.0.0 283 4/6/2021