LinqTools 1.2.0
See the version list below for details.
dotnet add package LinqTools --version 1.2.0
NuGet\Install-Package LinqTools -Version 1.2.0
<PackageReference Include="LinqTools" Version="1.2.0" />
paket add LinqTools --version 1.2.0
#r "nuget: LinqTools, 1.2.0"
// Install LinqTools as a Cake Addin #addin nuget:?package=LinqTools&version=1.2.0 // Install LinqTools as a Cake Tool #tool nuget:?package=LinqTools&version=1.2.0
LinqTools
Extensions for LINQ
Overview
- Extension functions to make Nullable a Monad/Functor
- Extension functions to make Async Function a Monad/Functor
- Ohter Tools usable for fluent syntax
Nullable Extensions
There are Extension Functions for nullables to make them Monads/Functors:
- Select
- SelectMany
If you are not sure, if an object is null although the compiler says no, you can create a Nullable from an apparently not Nullable with
static T? AsNullable<T>(this T t)
With the extension functions you can work with nullables as if they were not nullables:
var res = (from n in teststr
from m in GetFirstStringChecked(n)
where m.Length == 9
from p in ThrowIfNull(m)
select p)
.GetOrDefault("Nothing");
As soon as a function returns null, all further processing is skipped.
Result Monad/Functor
There is a Result Monad/Functor, containing either an Ok value or an Error value. You can transform Results with LINQ queries like:
var test = from n in await Process.RunAsync("lsblk", "--bytes --output SIZE,NAME,LABEL,MOUNTPOINT,FSTYPE")
let driveLines = n.Split('\n', StringSplitOptions.RemoveEmptyEntries)
let titles = driveLines[0]
let positions = new[]
{
0,
titles.IndexOf("NAME"),
titles.IndexOf("LABEL"),
titles.IndexOf("MOUNT"),
titles.IndexOf("FSTYPE")
}
select driveLines
.Skip(1)
.Select(n => CreateRootItem(n, positions))
.ToArray();
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on LinqTools:
Package | Downloads |
---|---|
GtkDotNet
.NET 6 Bindings for GTK 3 |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
6.2.0 | 231 | 12/13/2023 |
6.1.0 | 158 | 12/13/2023 |
6.0.0 | 292 | 12/10/2023 |
5.5.0 | 811 | 11/18/2023 |
5.4.0 | 483 | 11/16/2023 |
5.3.0 | 893 | 11/11/2023 |
5.2.0 | 872 | 8/14/2023 |
5.1.1 | 385 | 8/12/2023 |
5.1.0 | 388 | 8/12/2023 |
5.0.0 | 833 | 8/10/2023 |
4.2.0 | 200 | 8/9/2023 |
4.1.0 | 294 | 4/24/2023 |
4.0.0 | 951 | 4/9/2023 |
3.3.0 | 601 | 4/8/2023 |
3.2.0 | 206 | 4/8/2023 |
3.1.0 | 223 | 4/8/2023 |
3.0.0 | 202 | 4/8/2023 |
2.0.0 | 296 | 3/28/2023 |
1.3.0 | 264 | 3/26/2023 |
1.2.0 | 1,706 | 3/18/2023 |
1.1.0 | 430 | 3/15/2023 |
1.0.0 | 965 | 3/11/2023 |
0.0.1-alpha.5 | 108 | 3/8/2023 |
0.0.1-alpha.4 | 101 | 3/8/2023 |
0.0.1-alpha.3 | 92 | 3/8/2023 |
0.0.1-alpha.2 | 91 | 3/8/2023 |
0.0.1-alpha.1 | 92 | 3/8/2023 |