PlainBytes.System.Extensions 1.0.0

dotnet add package PlainBytes.System.Extensions --version 1.0.0                
NuGet\Install-Package PlainBytes.System.Extensions -Version 1.0.0                
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="PlainBytes.System.Extensions" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PlainBytes.System.Extensions --version 1.0.0                
#r "nuget: PlainBytes.System.Extensions, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PlainBytes.System.Extensions as a Cake Addin
#addin nuget:?package=PlainBytes.System.Extensions&version=1.0.0

// Install PlainBytes.System.Extensions as a Cake Tool
#tool nuget:?package=PlainBytes.System.Extensions&version=1.0.0                

<p align="center"> <img width="128" align="center" src="assets/system-extensions.png" > </p>

<h1 align="center"> System.Extensions </h1>

<p align="center"> Collection of extension method for the BCL to ease their usage. Please feel free to submit bits that are not yet included. </p>

GitHub Nuget CodeFactor GradeBuild Validation <p align="center">

</p>

Examples

String

     var stringValue = "text";

    _ = stringValue.IsNullOrEmpty();
    _ = stringValue.IsNullOrWhiteSpace();

    _ = stringValue.HasValue();
    _ = stringValue.HasActualValue();

    _ = "{0} {1}".FormatWith(1, 2);

Numeric types


    // Int, uint, long, ulong, byte
    var number = 123;

    _ = intValue.Clamp(0, 100);
    _ = intValue.ToBool(); // each type has its revers bool to number.

Double

    var doubleValue = 12.34;

    _ = doubleValue.Clamp(0, 100);
    _ = doubleValue.IsInfinity();
    _ = doubleValue.IsNegativeInfinity();
    _ = doubleValue.IsPositiveInfinity();
    _ = doubleValue.IsNaN();
    _ = doubleValue.IsEqual(34.12,tolerance: 0.1); //two NaNs are also evaluated as equals

Collection access

    var collection = new[] {1, 2, 3};
    
    _ = collection.HasIndex(4);
    _ = collection.AtIndexOrDefault(4);
    _ = collection.AtIndexOrFallback(4, -1);
    _ = collection.IsEmpty();

    var directory = new Dictionary<int, int>();

    _ = directory.AtKeyOrFallback(4, -1);

Iterators

    // Extensions for IList<T>, IEnumerable<T> and Enumerable

    var collection = new[] {1, 2, 3};

    collection.For((index, value) => {});
    collection.ForEach(value => {});

    _ = collection.SelectWithIndex((index, value) => value);
    _ = collection.SelectTypeOf<double>();

    var secondCollection = new[] {4, 5};

    _ = collection.Append(secondCollection);

Install

Package manger

Install-Package PlainBytes.System.Extensions

CLI

dotnet add package PlainBytes.System.Extensions

Target platform: .Net Standard 1.0 and above.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 243 11/26/2024
0.8.0 3,499 8/27/2023
0.7.0 214 5/2/2023
0.6.0.2 2,767 10/27/2022
0.6.0.1 485 10/27/2022
0.6.0 3,986 4/25/2022
0.5.0.1 1,027 8/9/2021
0.5.0 435 8/9/2021
0.4.0 409 5/20/2021
0.2.0 431 4/23/2021
0.1.3 449 2/7/2021
0.1.2 499 12/13/2020
0.1.1 520 12/5/2020
0.1.0 510 12/5/2020