Nuget Nuget

Creek.HelpfulExtensions

A package containing helpful extensions to either save time or cognitive load.

This is available on NuGet - just click one of the buttons above, or search for Creek.HelpfulExtensions in Visual Studio.

String Extensions

SubstringBetween

This method allows you to return a substring from the first occurrence of the start string to the end string. Normally with Substring you have to put the start string and the length from there, but with this you can more naturally select between two strings, with the option to use either the first or last match for the end string.

For example, this code will result in the string "fishman".

string s = "bigfishmandogcatdoghat";
s = s.SubstringBetween("fish", "dog");

Whereas, this will result in the string "fishmandogcat" as the boolean passed in confirms you wish to use the last match of the end string.

string s = "bigfishmandogcatdoghat";
s = s.SubstringBetween("fish", "dog", true);

IEnumerable Extensions

WithIndex

This method allows you to use a foreach loop and easily access the index of each item.

foreach (var (item, index) in list.WithIndex())
{
    // ...
}

DateTime Extensions

SystemTime.Now

This is technically not an extension, but fits well in this package. It's taken from this blog. This method exposes DateTime.Now as an instance of a function, that can be replaced in tests.

If you want to replace SystemTime.Now in a test you can do it like this:

[Test]
public void Should_test_something_here()
{
    var systemTimeDate = new DateTime(2021, 9, 2);
    SystemTime.Now = () => new DateTime(2021, 9, 2);

    DateTime dateTimeToBeTested = systemTimeDate;

    // ...
}

You can also set SystemTime.Now to any function that returns a DateTime:

var startDate = new DateTime(2021, 9, 2);
SystemTime.Now = () => startDate.AddDays(2);

Exception Extensions

BaseExceptionMessage

Returns a string of the message of the first/root/base exception in an exception stack.

try
{
    ...
}
catch (Exception ex)
{
    string baseExceptionMessage = ex.BaseExceptionMessage();
    ...
}

BaseExceptionMessageAndStackTrace

Returns a single string of the message and stack trace of the first/root/base exception in an exception stack.

try
{
    ...
}
catch (Exception ex)
{
    string baseExceptionMessageAndStackTrace = ex.BaseExceptionMessageAndStackTrace();
    ...
}

AllInnerExceptionMessages

Returns a list of the exception messages of each nested exception in an exception stack.

try
{
    ...
}
catch (Exception ex)
{
    List<string> allInnerExceptionMessages = ex.AllInnerExceptionMessages();
    ...
}

AllInnerExceptionMessagesAndStackTraces

Returns a list of single strings of the message and stack trace of each nested exception in an exception stack.

try
{
    ...
}
catch (Exception ex)
{
    List<string> allInnerExceptionMessagesAndStackTraces = ex.AllInnerExceptionMessagesAndStackTraces();
    ...
}
S
Description
No description provided
Readme GPL-3.0 60 KiB
Languages
C# 100%