A collection of tools I have found useful across more than one project. This nuget package will contain all the items (both C# and otherwise) that don't fit into any of my other packages. See source README for full explanation.


Keywords
tools, unlimitedinf, semver, log
License
MIT
Install
Install-Package Unlimitedinf.Tools -Version 4.0.0

Documentation

tools

Organized by package/dll

Badges!

Wut Badge
Build (+tests) on VSTS Build on VSTS
Unlimitedinf.Tools Unlimitedinf.Tools NuGet
Unlimitedinf.Tools.Statics Unlimitedinf.Tools.Statics NuGet
Unlimitedinf.Tools.Numerics Unlimitedinf.Tools.Numerics NuGet

Unlimitedinf.Tools

The nuget package that collects everything that doesn't belong somewhere else

Currently just contains Unlimitedinf.Tools.dll.

Class Description
GenerateRandom A class containing various methods to generate random information using the RNGCryptoServiceProvider
Id A lighter-weight id tracker to replace the heftiness of Guid. 4 billion unique Ids, with 2 billion before statistically likely collisions built on a backing datatype of 4 bytes.
Log A custom wrapper for the standard Console.WriteLine method that prints the way I normally do for my projects.
SemVer To help with representing and performing operations on semantic versions version 2 (SemVer.org)
IO.FileSystemCollection Class for enumerating files and directories in a way that exposes through an IEnumerable and tries to gracefully ignore the most common exceptions it encounters.
IO.ThrottledStream Class for streaming data with throttling support
Hashing.Hasher A wrapper for common hashing functions to operate on streams or files
Hashing.Crc32 Implements the Crc32 checksum as a HashAlgorithm
Hashing.Blockhash Perceptual image hash calculation as a HashAlgorithm. Warning: Memory intensive due to image verification/handling.
Function Description
double Median<T>(this IEnumerable<T> source) Calculate the median of an IEnumerable whose elements can be Convert.ToDouble

StringExtensions

This class contains a lot of extension methods for strings. Assume that there is an implied this string input parameter for each method below.

Function Description
string Chop(int length) Alias for input.Substring(0,length)
string FromBase64String() Convert a valid Base64 string back to text.
string GetHashCode*() Based on the name of *, get the corresponding hash code for the string.
string ToBase64String() Convert text to a Base64 string.
bool TryParseRelativeDateTime(out DateTime result) Given a string, treat it as an engligh-formatted relative datetime and attempt to parse an actual datetime out

Parsing.ExpressionParser

This class contains an extension method for strings. Assume that there is an implied this string input parameter for the method below.

Function Description
string EvaluateAsExpression() Take a simple mathematical expression and return a double result.

Unlimitedinf.Tools.Numerics

The ruff tuff number-crunchin maniac nuget package

Initially started as part of my solutions to Project Euler, these useful functions were broken out into their own DLL, and then their own package, to maximize reusability.

For a list of all functions available, see the source.

Unlimitedinf.Tools.Statics

The nuget package of constant data

Contains Unlimitedinf.Tools.Statics.dll with the following:

Class Description
Numerics.Primes Contains two members, int[] Ordered and HashSet<int> Unordered, which contain the prime integers from 2 to 1000003, inclusive.

Other notes

  • If strong-name signing is required, please educate me on how to do it with VSTS. Alternatively, you may take a copy of the source (as permitted by the MIT license) and build+sign it yourself (in case that part was unclear). If you wish to distribute that effort more broadly than your own application, please get in touch so that I may do that on your behalf.