Skip to content

Releases: morelinq/MoreLINQ

4.2.0

01 Apr 19:22
Compare
Choose a tag to compare

NuGet Package Documentation

This is a bug fix and maintenance release.

What's Changed 🗒️

See Also ℹ️

4.1.0

27 Nov 12:21
Compare
Choose a tag to compare

NuGet Package Documentation

What's New 📣

New Contributors 👋🏽

What's Changed 🗒️

See Also ℹ️

4.0.0

29 Oct 11:12
092a40d
Compare
Choose a tag to compare

NuGet Package Documentation

What's New 📣

This release introduces an experimental version of Batch that allows use of an array pool for batches, which can especially help reduce (potentially LOH) allocations for very large batch sizes.

New aliases are introduced for the following existing methods because they conflicted with identically named methods introduced in .NET 6.0, but which differ in definition and behaviour:

The superseded methods have been marked obsolete and will most probably be removed in a future version. For more details, see #1018.

In a similar vein, this release also retires the following extension methods that are now part of .NET proper and which have identical names and behaviour:

  • Append
  • Batch
  • Concat
  • DistinctBy
  • Prepend
  • SkipLast
  • TakeLast
  • ToHashSet

This helps to prevent ambiguity errors during compilation when System.Linq and MoreLinq namespaces are imported together in a file or a namespace. The retirement is done such that the above methods appear as regular static methods rather than extension methods depending on the compilation target. This helps to maintain source as well as binary compatibility. Special thanks to @viceroypenguin for helping with this (see #945 for more details). The upshot is that projects that prefer to import the MoreLinq namespace rather than individual extensions can simply do so without running into ambiguity compilation errors. However, do bear in mind that this does not prevent future conflicts from appearing should more of MoreLINQ's methods find their way into .NET.

Breaking Changes ⚠️

Since this a major release, some source and binary breaking changes that are listed below were introduced. Please read the details to see if you're affected.

  • Interleave shouldn't validate otherSequences members #1029
  • Add Minima & Maxima to supersede MinBy & MaxBy #1018
  • Remove Windowed that's been obsolete since 3.0 #1016
  • Remove Concat that's been obsolete since 3.0 #993
  • Set baseline target to .NET Standard 2.0 #987
  • Validate expressions argument to ToDataTable cannot be null #802
  • Subsets(0) should return an empty set #645
  • Batch should return IEnumerable<T[]> #98

New Contributors 👋🏽

What's Changed 🗒️

  • Use docopt.net to parse extensions generator CLI args by @atifaziz in #994
  • Remove obsolete Concat method by @pflajszer in #1002
  • Fix bug in FillForward when filler is null by @atifaziz in #1006
  • Dissolve schema query into distinct ToDataTable paths by @atifaziz in #1007
  • Hide extensions that conflict with newer .NET versions by @viceroypenguin in #945
  • Fix schema binding signature in ToDataTable implementation by @atifaziz in #1008
  • Re-enable tests for hidden extensions on all targets by @atifaziz in #1009
  • SortedMerge: Test do not call MoveNext eagerly by @Orace in #735
  • Update package validation tool to v1.0.12 by @atifaziz in #1010
  • Suppress EnableGenerateDocumentationFile warning as workaround for IDE0005 by @atifaziz in #1013
  • Change Batch to return arrays by @atifaziz in #1014
  • Fix Subsets so it returns an empty set when k = 0 by @Orace in #646
  • Remove Windowed that's superseded by Window by @atifaziz in #1017
  • Validate expressions argument of ToDataTable by @atifaziz in #1021
  • Add Minima & Maxima as successors to MinBy & MaxBy by @atifaziz in #1019
  • Remove redundant IsExternalInit package by @atifaziz in #1022
  • Update all packages to latest versions by @atifaziz in #1023
  • List required PolySharp polyfills explicitly by @atifaziz in #1026
  • Don't validate content of otherSequences argument of Interleave by @atifaziz in #1031
  • Fix exception thrown when Pad/PadStart width is invalid by @atifaziz in #1030

See Also ℹ️

3.4.2

02 Apr 10:24
ae9eea5
Compare
Choose a tag to compare

NuGet Package Documentation

This is a bug fix and maintenance release.

What's Changed 🗒️

  • Fix Unfold bug so iterations are repeatable by @atifaziz in #991 🪲

See Also ℹ️

3.4.1

09 Mar 20:48
93bc6dc
Compare
Choose a tag to compare

NuGet Package Documentation

This is a bug fix and maintenance release.

What's Changed 🗒️

  • Enable nullable context for extensions generated via T4 by @atifaziz in #982 🪲
  • Fix Permutations for when source length is >12 by @atifaziz in #979 🪲
  • Add public API tracking by @atifaziz in #980
  • Use raw strings for quoted code in extensions generator by @atifaziz in #983

See Also ℹ️

3.4.0

28 Feb 20:37
b99a6a8
Compare
Choose a tag to compare

NuGet Package Documentation

What's New 📣

This release notably adds nullable reference type annotations (see #582 and #803), the two experimental operators below and fixes a few bugs:

Breaking Changes ⚠️

While there are no breaking API changes in this release, the following changes will affect users using on .NET versions that have reached end-of-life:

  • Use .NET 6 SDK while dropping .NET 5 & Core 2.1 by @atifaziz in #843
  • Updated .NET Framework target to 4.6.2 by @atifaziz in #934

See Also ℹ️

New Contributors 👋🏽

What's Changed 🗒️

Read more

3.3.2

27 Dec 10:20
b802173
Compare
Choose a tag to compare

NuGet Package Documentation

This is a minor bug fix release that primarily addresses a regression with Batch that was introduced in version 3.3.1.

See Also

3.3.1

13 Dec 09:05
Compare
Choose a tag to compare

NuGet Package Documentation

What's New 📢

And lots of bug fixes. 🐛

See Also

3.2.0

17 Jul 13:43
Compare
Choose a tag to compare

NuGet Package Documentation

What's New 📢

What's Changed

See Also

3.1.1

05 Apr 10:47
Compare
Choose a tag to compare

NuGet Package Documentation

This is bug fix release that addresses issue #564.

For a more detailed list of changes in this release, see: