Linq.Next
1.2.19
dotnet add package Linq.Next --version 1.2.19
NuGet\Install-Package Linq.Next -Version 1.2.19
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="Linq.Next" Version="1.2.19" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Linq.Next --version 1.2.19
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Linq.Next, 1.2.19"
#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 Linq.Next as a Cake Addin #addin nuget:?package=Linq.Next&version=1.2.19 // Install Linq.Next as a Cake Tool #tool nuget:?package=Linq.Next&version=1.2.19
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Overview
The Linq.Next package provides you with a useful additions to the Linq.
Reference
namespace System.Linq;
public static class LinqExtensions {
// Split
// Split the items into segments (the separator is excluded)
// Example: [false, false, false], true, [false, false, false]
public static IEnumerable<T[]> Split<T>(this IEnumerable<T> source, Func<T, bool> separatorPredicate);
public static IEnumerable<TResult[]> Split<T, TResult>(this IEnumerable<T> source, Func<T, bool> separatorPredicate, Func<T, TResult> resultSelector);
public static IEnumerable<IList<TResult>> FastSplit<T, TResult>(this IEnumerable<T> source, Func<T, bool> separatorPredicate, Func<T, TResult> resultSelector);
// Split/Before
// Split the items into segments (the separator is included at the beginning of segment)
// Example: [false, false, false], [true, false, false]
public static IEnumerable<T[]> SplitBefore<T>(this IEnumerable<T> source, Func<T, bool> separatorPredicate);
public static IEnumerable<TResult[]> SplitBefore<T, TResult>(this IEnumerable<T> source, Func<T, bool> separatorPredicate, Func<T, TResult> resultSelector);
public static IEnumerable<IList<TResult>> FastSplitBefore<T, TResult>(this IEnumerable<T> source, Func<T, bool> separatorPredicate, Func<T, TResult> resultSelector);
// Split/After
// Split the items into segments (the separator is included at the end of segment)
// Example: [false, false, true], [false, false, false]
public static IEnumerable<T[]> SplitAfter<T>(this IEnumerable<T> source, Func<T, bool> separatorPredicate);
public static IEnumerable<TResult[]> SplitAfter<T, TResult>(this IEnumerable<T> source, Func<T, bool> separatorPredicate, Func<T, TResult> resultSelector);
public static IEnumerable<IList<TResult>> FastSplitAfter<T, TResult>(this IEnumerable<T> source, Func<T, bool> separatorPredicate, Func<T, TResult> resultSelector);
// Slice
// Slice the items into slices
// Example: [true, true, true], [false, true, true]
public static IEnumerable<T[]> Slice<T>(this IEnumerable<T> source, Func<T, IList<T>, bool> belongsToSlicePredicate);
public static IEnumerable<TResult[]> Slice<T, TResult>(this IEnumerable<T> source, Func<T, IList<TResult>, bool> belongsToSlicePredicate, Func<T, TResult> resultSelector);
public static IEnumerable<IList<TResult>> FastSlice<T, TResult>(this IEnumerable<T> source, Func<T, IList<TResult>, bool> belongsToSlicePredicate, Func<T, TResult> resultSelector);
// Unflatten
// Unflatten the items into key-values pairs
// Example: true: [false, false, false], true: [false, false, false]
// Example: key: [value, value, value], key: [value, value, value]
public static IEnumerable<(Option<T> Key, T[] Values)> Unflatten<T>(this IEnumerable<T> source, Func<T, bool> keyPredicate);
public static IEnumerable<(Option<TKey> Key, TValue[] Values)> Unflatten<T, TKey, TValue>(this IEnumerable<T> source, Func<T, bool> keyPredicate, Func<T, TKey> keySelector, Func<T, TValue> valueSelector);
public static IEnumerable<(Option<TKey> Key, IList<TValue> Values)> FastUnflatten<T, TKey, TValue>(this IEnumerable<T> source, Func<T, bool> keyPredicate, Func<T, TKey> keySelector, Func<T, TValue> valueSelector);
// With/Prev
public static IEnumerable<(T Value, Option<T> Prev)> WithPrev<T>(this IEnumerable<T> source);
// With/Next
public static IEnumerable<(T Value, Option<T> Next)> WithNext<T>(this IEnumerable<T> source);
// With/Prev-Next
public static IEnumerable<(T Value, Option<T> Prev, Option<T> Next)> WithPrevNext<T>(this IEnumerable<T> source);
// Tag/First
public static IEnumerable<(T Value, bool IsFirst)> TagFirst<T>(this IEnumerable<T> source);
// Tag/Last
public static IEnumerable<(T Value, bool IsLast)> TagLast<T>(this IEnumerable<T> source);
// Tag/First-Last
public static IEnumerable<(T Value, bool IsFirst, bool IsLast)> TagFirstLast<T>(this IEnumerable<T> source);
// CompareTo
public static void CompareTo<T>(this IEnumerable<T> actual, IEnumerable<T> expected, out T[] missing, out T[] extra);
}
Links
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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Enumerable.Pro (>= 1.0.1)
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.2.19 | 72 | 12/6/2024 |
1.2.18 | 78 | 12/5/2024 |
1.2.17 | 82 | 12/4/2024 |
1.2.16 | 85 | 11/20/2024 |
1.2.15 | 119 | 9/6/2024 |
1.2.14 | 106 | 5/25/2024 |
1.2.13 | 94 | 5/10/2024 |
1.2.12 | 70 | 5/2/2024 |
1.2.9 | 333 | 1/18/2023 |
1.2.8 | 304 | 1/18/2023 |
1.2.7 | 299 | 1/18/2023 |
1.2.6 | 278 | 1/18/2023 |
1.2.5 | 303 | 1/18/2023 |
1.2.4 | 301 | 1/18/2023 |
1.2.3 | 296 | 1/17/2023 |
1.2.2 | 297 | 1/17/2023 |
1.2.1 | 310 | 1/17/2023 |
1.2.0 | 296 | 1/16/2023 |
1.1.6 | 309 | 12/18/2022 |
1.1.5 | 310 | 12/18/2022 |
1.1.4 | 309 | 12/18/2022 |
1.1.3 | 423 | 6/20/2022 |
1.1.2 | 420 | 6/20/2022 |
1.1.1 | 431 | 6/18/2022 |
1.1.0 | 428 | 6/17/2022 |
1.0.1 | 426 | 6/16/2022 |
1.0.0 | 429 | 6/16/2022 |