morelinq 3.1.0

This project enhances LINQ to Objects with the following methods: Acquire, AggregateRight, Append, Assert, AssertCount, AtLeast, AtMost, Await (EXPERIMENTAL), AwaitCompletion (EXPERIMENTAL), Backsert, Batch, Cartesian, Choose, CountBetween, CompareCount, CountBy, CountDown, Consume, DistinctBy, EndsWith, EquiZip, Exactly, ExceptBy, Exclude, FallbackIfEmpty, FillBackward, FillForward, Flatten, Fold, ForEach, From, FullGroupJoin, FullJoin, Generate, GenerateByIndex, GroupAdjacent, Index, Insert, Interleave, Lag, Lead, LeftJoin, MaxBy, Memoize, MinBy, Move, OrderBy, OrderedMerge, Pad, PadStart, Pairwise, PartialSort, PartialSortBy, Partition, Permutations, Pipe, Prepend, PreScan, Random, RandomDouble, RandomSubset, Rank, RankBy, Repeat, RightJoin, RunLengthEncode, Scan, ScanRight, Segment, Sequence, Shuffle, SkipLast, SkipUntil, Slice, SortedMerge, Split, StartsWith, Subsets, TagFirstLast, TakeEvery, TakeLast, TakeUntil, ThenBy, ToArrayByIndex, ToDataTable, ToDelimitedString, ToDictionary, ToHashSet, ToLookup, Trace, Transpose, TraverseBreadthFirst, TraverseDepthFirst, Unfold, Window, WindowLeft, WindowRight, ZipLongest, ZipShortest

There is a newer version of this package available.
See the version list below for details.
Install-Package morelinq -Version 3.1.0
dotnet add package morelinq --version 3.1.0
<PackageReference Include="morelinq" Version="3.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add morelinq --version 3.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: morelinq, 3.1.0"
For F# scripts that support #r syntax, copy this into the source code to reference the package.

Usage

MoreLINQ can be used in one of two ways. The simplest is to just import the MoreLinq namespace and all extension methods become instantly available for you to use on the types they extend. In some very rare instances, however, this cause conflicts with other libraries you may be using that incidentally also extend the same type with an identically named method and signature. This happened with MoreLINQ, for example, when Microsoft .NET Framework 4.0 introduced Zip and MoreLINQ already had one. Starting with version 3.0 of MoreLINQ, you can reduce the potential for present (or even future) conflicts by individually importing just the extension methods you need using the static imports feature introduced in C# 6:

using static MoreLinq.Extensions.LagExtension;
using static MoreLinq.Extensions.LeadExtension;

In the example above, only the Lag and Lead extension methods will be available in scope.

Apart from extension methods, MoreLINQ also offers regular static method that generate (instead of operating on) sequences, like Unfold, Random, Sequence and others. If you want to use these while statically importing other individual extension methods, you can do so via aliasing:

using static MoreLinq.Extensions.LagExtension;
using static MoreLinq.Extensions.LeadExtension;
using MoreEnumerable = MoreLinq.MoreEnumerable;

In the example above, Lag and Lead will be available as extension methods as well as all the regular static methods on MoreEnumerable but without any of the extension methods offered by MoreEnumerable.

Usage

MoreLINQ can be used in one of two ways. The simplest is to just import the MoreLinq namespace and all extension methods become instantly available for you to use on the types they extend. In some very rare instances, however, this cause conflicts with other libraries you may be using that incidentally also extend the same type with an identically named method and signature. This happened with MoreLINQ, for example, when Microsoft .NET Framework 4.0 introduced Zip and MoreLINQ already had one. Starting with version 3.0 of MoreLINQ, you can reduce the potential for present (or even future) conflicts by individually importing just the extension methods you need using the static imports feature introduced in C# 6:

using static MoreLinq.Extensions.LagExtension;
using static MoreLinq.Extensions.LeadExtension;

In the example above, only the Lag and Lead extension methods will be available in scope.

Apart from extension methods, MoreLINQ also offers regular static method that generate (instead of operating on) sequences, like Unfold, Random, Sequence and others. If you want to use these while statically importing other individual extension methods, you can do so via aliasing:

using static MoreLinq.Extensions.LagExtension;
using static MoreLinq.Extensions.LeadExtension;
using MoreEnumerable = MoreLinq.MoreEnumerable;

In the example above, Lag and Lead will be available as extension methods as well as all the regular static methods on MoreEnumerable but without any of the extension methods offered by MoreEnumerable.

Release Notes

https://github.com/morelinq/MoreLINQ/releases/tag/v3.1.0

NuGet packages (184)

Showing the top 5 NuGet packages that depend on morelinq:

Package Downloads
Lykke.Common
Lykke common tools and utilities
Rocket.Core
RocketMod .NET Game Server Plugin Framework Core implementations
Ewl
The Enterprise Web Library (EWL), and its tailored infrastructure platform, are a complete and open solution for developing and operating web-based enterprise software.
SheshaMobile.Core
Common application functionality and features to be shared across the framework
Dox.Net.MsSqlBuilder
Database layer for Dox Objects

GitHub repositories (28)

Showing the top 5 popular GitHub repositories that depend on morelinq:

Repository Stars
QuantConnect/Lean
Lean Algorithmic Trading Engine by QuantConnect (C#, Python)
bchavez/Bogus
:card_index: A simple and sane fake data generator for C#, F#, and VB.NET. Based on and ported from the famed faker.js.
ClosedXML/ClosedXML
ClosedXML is a .NET library for reading, manipulating and writing Excel 2007+ (.xlsx, .xlsm) files. It aims to provide an intuitive and user-friendly interface to dealing with the underlying OpenXML API.
Lunat1q/Catchem-PoGo
Project is DEAD, Discord server: https://discord.me/Catchem
PoESkillTree/PoESkillTree
A Passive Skill Tree Planner for Path of Exile

Version History

Version Downloads Last updated
3.3.2 3,749,926 12/27/2019
3.3.1 110,540 12/13/2019
3.2.0 1,770,000 7/17/2019
3.1.1 1,057,772 4/5/2019
3.1.0 992,983 12/21/2018
3.0.0 1,362,827 6/29/2018
3.0.0-beta-2 4,109 5/17/2018
3.0.0-beta-1 10,738 4/10/2018
2.10.0 1,038,340 1/23/2018
2.9.0 182,506 12/22/2017
2.8.0 621,018 9/30/2017
2.7.0 169,455 8/31/2017
2.7.0-rc-1 788 8/28/2017
2.7.0-beta-1 1,017 8/23/2017
2.6.0 349,260 6/30/2017
2.5.0 105,013 5/31/2017
2.4.1 84,727 5/1/2017
2.4.0 3,658 4/30/2017
2.4.0-beta-02 1,583 4/21/2017
2.4.0-beta-01 2,146 4/13/2017
2.3.0 249,995 3/31/2017
2.2.0 150,379 2/24/2017
2.2.0-beta-1 992 2/19/2017
2.1.0 137,747 1/31/2017
2.0.0 133,718 12/23/2016
2.0.0-beta06 7,570 11/11/2016
2.0.0-beta05 11,274 9/28/2016
2.0.0-beta04 27,130 8/5/2016
2.0.0-beta03 28,765 2/18/2016
2.0.0-beta02 1,050 2/9/2016
2.0.0-beta01 1,033 2/1/2016
2.0.0-alpha01 35,643 6/27/2013
1.4.0 988,378 10/16/2015
1.3.0 27,459 10/2/2015
1.2.0 19,236 9/16/2015
1.1.1 147,220 5/19/2015
1.1.0 188,485 8/12/2014
1.0.16006 191,619 5/7/2013
1.0.15631-beta 2,060 1/31/2013
1.0.15416-beta 1,179 11/16/2012
1.0.11729-beta 967 11/9/2012
1.0.0 64,644 6/3/2011
Show less