Info
Version: | 1.2.0 |
Author(s): | EnoughTea |
Last Update: | Thursday, January 19, 2017 |
.NET Fiddle: | Create the first Fiddle |
Project Url: | https://github.com/enoughtea/essentions |
NuGet Url: | https://www.nuget.org/packages/Essentions |
Install
Install-Package Essentions
dotnet add package Essentions
paket add Essentions
Essentions Download (Unzip the "nupkg" after downloading)
Dependencies
Tags
You probably would be better off if you built your own helper lib.
# What is inside?
## Collections
* Standard generic list with events before and after all modifications with ability to cancel and separate handling of batch additions/removals.
* Two simple pools:
* typical "take instance out of the pool, put it back after you done";
* less standard "owning" pool, which tracks provided instances and returns them back to pool when they become unused, as defined by user callback.
* Dictionary with weak-referenced values.
Null values are supported.
## Extensions
* Check whether a type contains another type in its inheritance chain, be it interface, abstract classe or generic with parameters.
* Reverse and chain comparers.
* Invoke latests delegate targets.
* Manipulate collection values inside a dictionary more easily.
* Get value from a dictionary in a convenient way.
* Create default instance of the given type.
* Clamp numbers, do float equality checks with epsilon, normalize and remap values,
find proper modulo (not to be confused with `%` operator), lots of stuff.
* Check sequences for equivalence.
* Randomly chose one of the elements based on their probabilities.
* …
## Utility classes
* Simple fluent argument checking.
* Base disposable class, helps with the standard .NET disposal pattern. Does not implement a finalizer by default.
* Ranges, with intersection and union operations.
* Reference counter.
* Xorshift rng taken from Redzen code library (https://github.com/colgreen/Redzen/).
* Few interpolation functions.
* Null checker without boxing for generic variables.