X10D.Hosting 4.0.0-nightly.250

Prefix Reserved
This is a prerelease version of X10D.Hosting.
There is a newer version of this package available.
See the version list below for details.
dotnet add package X10D.Hosting --version 4.0.0-nightly.250                
NuGet\Install-Package X10D.Hosting -Version 4.0.0-nightly.250                
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="X10D.Hosting" Version="4.0.0-nightly.250" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add X10D.Hosting --version 4.0.0-nightly.250                
#r "nuget: X10D.Hosting, 4.0.0-nightly.250"                
#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 X10D.Hosting as a Cake Addin
#addin nuget:?package=X10D.Hosting&version=4.0.0-nightly.250&prerelease

// Install X10D.Hosting as a Cake Tool
#tool nuget:?package=X10D.Hosting&version=4.0.0-nightly.250&prerelease                

<h1 align="center"><img src="branding_Banner.png"></h1> <p align="center"> <a href="https://github.com/oliverbooth/X10D/actions/workflows/dotnet.yml"><img src="https://img.shields.io/github/actions/workflow/status/oliverbooth/X10D/dotnet.yml?style=flat-square" alt="GitHub Workflow Status" title="GitHub Workflow Status"></a> <a href="https://github.com/oliverbooth/X10D/issues"><img src="https://img.shields.io/github/issues/oliverbooth/X10D?style=flat-square" alt="GitHub Issues" title="GitHub Issues"></a> <a href="https://app.codecov.io/gh/oliverbooth/X10D/"><img src="https://img.shields.io/codecov/c/github/oliverbooth/X10D?style=flat-square" alt="Coverage"></a> <a href="https://www.nuget.org/packages/X10D/"><img src="https://img.shields.io/nuget/dt/X10D?style=flat-square" alt="NuGet Downloads" title="NuGet Downloads"></a> <a href="https://www.nuget.org/packages/X10D/"><img src="https://img.shields.io/nuget/v/X10D?label=stable&style=flat-square" alt="Stable Version" title="Stable Version"></a> <a href="https://www.nuget.org/packages/X10D/"><img src="https://img.shields.io/nuget/vpre/X10D?label=nightly&style=flat-square" alt="Nightly Version" title="Nightly Version"></a> <a href="https://github.com/oliverbooth/X10D/blob/master/LICENSE.md"><img src="https://img.shields.io/github/license/oliverbooth/X10D?style=flat-square" alt="MIT License" title="MIT License"></a> </p>

About

X10D (pronounced extend), is a .NET package that provides extension methods for numerous types. The purpose of this library is to simplify a codebase by reducing the need for repeated code when performing common operations. Simplify your codebase. Take advantage of .NET. Use extension methods.

(I'm also dogfooding this library, so there's that.)

What are extension methods?

Extension methods are a clever .NET feature that augment existing types with new functionality. They are defined as static methods in a static class, and are called as if they were instance methods on the type they are extending. Take, for example, the following code:

public static class Program
{
    public static void Main()
    {
        string str = "Hello, world!";
        Console.WriteLine(str.Reverse());
    }
}

public static class StringExtensions
{
    public static string Reverse(this string str)
    {
        char[] chars = str.ToCharArray();
        Array.Reverse(chars);
        return new string(chars);
    }
}

This will print !dlrow ,olleH to the console. The Reverse method is defined in the StringExtensions class, yet is called as if it were an instance method on the str variable, even though it's not.

Why use extension methods?

Extension methods were introduced when LINQ was added to .NET. LINQ is a set of extension methods that provide a way to query, filter, and transform data. If you were to access LINQ's methods statically, you would have to write code like this:

public static class Program
{
    public static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };
        IEnumerable<int> evenNumbers = Enumerable.Where(numbers, x => x % 2 == 0);
        IEnumerable<int> doubledNumbers = Enumerable.Select(evenNumbers, x => x * 2);
        int sum = Enumerable.Sum(doubledNumbers);
        Console.WriteLine(sum);
    }
}

And if you wanted to one-line this, you'd have to write this:

public static class Program
{
    public static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };
        Console.WriteLine(Enumerable.Sum(Enumerable.Select(Enumerable.Where(numbers, x => x % 2 == 0), x => x * 2)));
    }
}

This is a lot of code to write, and it's not very readable. The nested method calls make it incredibly difficult to follow. However, because LINQ is implemented as extension methods, you can write the following code instead:

public static class Program
{
    public static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };
        Console.WriteLine(numbers.Where(x => x % 2 == 0).Select(x => x * 2).Sum());
    }
}

Because the methods are called as if they were instance methods on IEnumerable<T>, they can be chained together, making the code much more readable.

X10D aims to provide these same benefits as LINQ, but for dozens of other types and for countless other use cases. See the documentation for a complete breakdown of what's available.

Installation

NuGet installation

Install-Package X10D -Version 4.0.0

Manual installation

Download the latest release from this repository and adding a direct assembly reference for your chosen platform.

Documentation

Documentation and the API reference is available at https://oliverbooth.github.io/X10D/index.html. I'm sorry this took so long to get up and running. DocFX will be the death of me.

Contributing

Contributions are welcome. See CONTRIBUTING.md.

License

X10D is released under the MIT License. See here for more details.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
4.0.0 210 6/12/2024
4.0.0-nightly.250 44 6/12/2024
4.0.0-nightly.246 100 8/28/2023
4.0.0-nightly.236 128 5/14/2023
4.0.0-nightly.234 78 4/14/2023
4.0.0-nightly.233 87 4/14/2023
4.0.0-nightly.232 77 4/13/2023
4.0.0-nightly.231 82 4/13/2023
4.0.0-nightly.230 75 4/13/2023
4.0.0-nightly.229 77 4/12/2023
4.0.0-nightly.228 82 4/10/2023
4.0.0-nightly.227 92 4/6/2023
4.0.0-nightly.226 83 4/6/2023
4.0.0-nightly.225 85 4/5/2023
3.3.1 491 8/21/2023
3.3.1-nightly.249 58 2/17/2024
3.3.1-nightly.248 50 2/17/2024
3.3.1-nightly.247 51 2/12/2024
3.3.1-nightly.242 81 8/21/2023
3.3.0 146 8/21/2023
3.3.0-nightly.241 70 8/21/2023
3.2.2 652 6/5/2023
3.2.2-nightly.240 78 8/9/2023
3.2.2-nightly.239 69 6/5/2023
3.2.0 301 4/3/2023
3.2.0-nightly.224 80 4/3/2023
3.2.0-nightly.223 76 4/3/2023
3.2.0-nightly.222 90 4/3/2023
3.2.0-nightly.221 76 4/3/2023
3.2.0-nightly.220 85 4/3/2023
3.2.0-nightly.219 76 4/3/2023
3.2.0-nightly.218 78 4/3/2023
3.2.0-nightly.217 79 4/3/2023
3.2.0-nightly.216 81 4/3/2023
3.2.0-nightly.215 86 4/3/2023
3.2.0-nightly.214 82 4/3/2023
3.2.0-nightly.213 87 4/3/2023
3.2.0-nightly.212 78 4/3/2023
3.2.0-nightly.211 89 4/2/2023
3.2.0-nightly.210 80 4/2/2023
3.2.0-nightly.208 83 4/2/2023
3.2.0-nightly.207 83 4/2/2023
3.2.0-nightly.206 89 4/2/2023
3.2.0-nightly.205 87 4/2/2023
3.2.0-nightly.204 91 4/2/2023
3.2.0-nightly.203 84 4/2/2023
3.2.0-nightly.202 95 4/2/2023
3.2.0-nightly.201 90 4/2/2023
3.2.0-nightly.200 91 4/2/2023
3.2.0-nightly.199 85 4/2/2023
3.2.0-nightly.198 92 4/2/2023
3.2.0-nightly.197 85 4/2/2023
3.2.0-nightly.196 89 4/2/2023
3.2.0-nightly.195 83 4/2/2023
3.2.0-nightly.193 80 4/2/2023
3.2.0-nightly.192 79 4/1/2023
3.2.0-nightly.191 86 4/1/2023
3.2.0-nightly.190 80 4/1/2023
3.2.0-nightly.189 89 4/1/2023
3.2.0-nightly.188 82 4/1/2023
3.2.0-nightly.186 92 3/31/2023
3.2.0-nightly.185 91 3/31/2023
3.2.0-nightly.184 83 3/31/2023
3.2.0-nightly.183 77 3/31/2023
3.2.0-nightly.182 81 3/31/2023
3.2.0-nightly.181 89 3/31/2023
3.2.0-nightly.180 80 3/31/2023
3.2.0-nightly.179 79 3/31/2023
3.2.0-nightly.178 68 3/30/2023
3.2.0-nightly.177 77 3/30/2023
3.2.0-nightly.176 75 3/30/2023
3.2.0-nightly.175 77 3/30/2023
3.2.0-nightly.174 87 3/29/2023
3.2.0-nightly.173 93 3/29/2023
3.2.0-nightly.172 89 3/29/2023
3.2.0-nightly.171 93 3/28/2023
3.2.0-nightly.170 87 3/28/2023
3.2.0-nightly.169 81 3/28/2023
3.2.0-nightly.168 84 3/28/2023
3.2.0-nightly.165 112 3/26/2023
3.2.0-nightly.164 88 3/23/2023
3.2.0-nightly.163 188 2/28/2023
3.2.0-nightly.162 82 2/27/2023
3.2.0-nightly.161 86 2/27/2023
3.2.0-nightly.160 91 2/27/2023
3.2.0-nightly.159 87 2/27/2023
3.2.0-nightly.158 90 2/26/2023
3.2.0-nightly.157 88 2/26/2023
3.2.0-nightly.156 83 2/26/2023
3.2.0-nightly.155 84 2/26/2023
3.2.0-nightly.154 80 2/26/2023
3.2.0-nightly.153 87 2/26/2023
3.2.0-nightly.152 217 2/19/2023
3.2.0-nightly.151 104 2/5/2023
3.2.0-nightly.150 103 12/31/2022
3.2.0-nightly.149 132 12/22/2022
3.2.0-nightly.148 97 12/22/2022
3.2.0-nightly.147 186 12/21/2022
3.2.0-nightly.145 108 12/6/2022
3.2.0-nightly.144 113 12/1/2022
3.2.0-nightly.143 86 12/1/2022
3.2.0-nightly.142 98 11/29/2022
3.2.0-nightly.141 108 11/29/2022
3.2.0-nightly.140 101 11/29/2022
3.2.0-nightly.139 107 11/29/2022
3.2.0-nightly.136 89 11/29/2022
3.2.0-nightly.135 94 11/28/2022
3.2.0-nightly.134 108 11/26/2022
3.2.0-nightly.133 380 7/30/2022
3.2.0-nightly.132 206 7/23/2022
3.2.0-nightly.131 97 7/23/2022
3.2.0-nightly.130 104 7/21/2022
3.2.0-nightly.129 115 7/21/2022
3.2.0-nightly.128 128 7/21/2022
3.2.0-nightly.127 112 7/20/2022

See CHANGELOG.md for a full list of changes.