diff --git a/Join-Object.ps1 b/Join-Object.ps1
index 63d6dce..c493d5f 100644
--- a/Join-Object.ps1
+++ b/Join-Object.ps1
@@ -366,7 +366,7 @@ function Join-Object {
$ScriptRoot = '.'
}
if (!('MoreLinq.MoreEnumerable' -as [type])) {
- Add-Type -Path (Resolve-Path -Path "$ScriptRoot\morelinq.*\lib\net451\MoreLinq.dll")
+ Add-Type -Path (Resolve-Path -Path "$ScriptRoot\morelinq.*\lib\netstandard2.0\MoreLinq.dll")
}
}
catch {
diff --git a/morelinq.3.0.0/lib/net451/MoreLinq.dll b/morelinq.3.0.0/lib/net451/MoreLinq.dll
deleted file mode 100644
index d66ae98..0000000
Binary files a/morelinq.3.0.0/lib/net451/MoreLinq.dll and /dev/null differ
diff --git a/morelinq.3.0.0/lib/netstandard1.0/MoreLinq.dll b/morelinq.3.0.0/lib/netstandard1.0/MoreLinq.dll
deleted file mode 100644
index 7d472b7..0000000
Binary files a/morelinq.3.0.0/lib/netstandard1.0/MoreLinq.dll and /dev/null differ
diff --git a/morelinq.3.0.0/lib/netstandard2.0/MoreLinq.dll b/morelinq.3.0.0/lib/netstandard2.0/MoreLinq.dll
deleted file mode 100644
index ada40bd..0000000
Binary files a/morelinq.3.0.0/lib/netstandard2.0/MoreLinq.dll and /dev/null differ
diff --git a/morelinq.3.0.0/morelinq.3.0.0.nupkg b/morelinq.3.0.0/morelinq.3.0.0.nupkg
deleted file mode 100644
index 7aef15e..0000000
Binary files a/morelinq.3.0.0/morelinq.3.0.0.nupkg and /dev/null differ
diff --git a/morelinq.3.2.0/.signature.p7s b/morelinq.3.2.0/.signature.p7s
new file mode 100644
index 0000000..eff507c
Binary files /dev/null and b/morelinq.3.2.0/.signature.p7s differ
diff --git a/morelinq.3.2.0/COPYING.txt b/morelinq.3.2.0/COPYING.txt
new file mode 100644
index 0000000..d9efc06
--- /dev/null
+++ b/morelinq.3.2.0/COPYING.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+==============================================================================
+The following notice applies to a small portion of the code:
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/morelinq.3.2.0/lib/net451/MoreLinq.dll b/morelinq.3.2.0/lib/net451/MoreLinq.dll
new file mode 100644
index 0000000..8a2f9ea
Binary files /dev/null and b/morelinq.3.2.0/lib/net451/MoreLinq.dll differ
diff --git a/morelinq.3.2.0/lib/net451/MoreLinq.pdb b/morelinq.3.2.0/lib/net451/MoreLinq.pdb
new file mode 100644
index 0000000..7cf4bad
Binary files /dev/null and b/morelinq.3.2.0/lib/net451/MoreLinq.pdb differ
diff --git a/morelinq.3.0.0/lib/net451/MoreLinq.xml b/morelinq.3.2.0/lib/net451/MoreLinq.xml
similarity index 90%
rename from morelinq.3.0.0/lib/net451/MoreLinq.xml
rename to morelinq.3.2.0/lib/net451/MoreLinq.xml
index 1b9a116..79de6ed 100644
--- a/morelinq.3.0.0/lib/net451/MoreLinq.xml
+++ b/morelinq.3.2.0/lib/net451/MoreLinq.xml
@@ -27,6 +27,223 @@
This operator executes immediately.
+
+
+ Applies two accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies three accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies four accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies five accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies six accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies seven accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies eight accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of eighth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+ The seed value for the eighth accumulator.
+ The eighth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
Applies a right-associative accumulator function over a sequence.
@@ -176,7 +393,12 @@
Type of elements in sequence.
Source sequence.
Count to assert.
- Function that returns the object to throw.
+
+ Function that receives a comparison (a negative integer if actual
+ count is less than and a positive integer
+ if actual count is greater than ) and
+ as arguments and which returns the
+ object to throw.
Returns the original sequence as long it is contains the
number of elements specified by .
@@ -783,7 +1005,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -796,6 +1019,9 @@
A sequence that contains elements of the two input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the two input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -831,6 +1054,9 @@
A sequence that contains elements of the three input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
- If the three input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence
Type of elements in second sequence
@@ -868,6 +1092,9 @@
A sequence that contains elements of the four input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the four input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
@@ -1213,8 +1436,33 @@
and all nested sequences for which the predicate function
returned true.
- is null.
- is null.
+
+ is null.
+
+ is null.
+
+
+
+ Flattens a sequence containing arbitrarily-nested sequences. An
+ additional parameter specifies a function that projects an inner
+ sequence via a property of an object.
+
+ The sequence that will be flattened.
+
+ A function that receives each element of the sequence as an object
+ and projects an inner sequence to be flattened. If the function
+ returns null then the object argument is considered a leaf
+ of the flattening process.
+
+
+ A sequence that contains the elements of
+ and all nested sequences projected via the
+ function.
+
+
+ is null.
+
+ is null.
@@ -2043,6 +2291,44 @@
This operator uses deferred execution and streams its
results.
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+ An additional parameter specifies a comparer to use for testing the
+ equivalence of keys.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ The equality comparer to use to determine whether or not keys are
+ equal. If null, the default equality comparer for
+ is used.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
Inserts the elements of a sequence into another sequence at a
@@ -2883,7 +3169,9 @@
The type of the elements of .
The sequence to pad.
The width/length below which to pad.
- Function to calculate padding.
+
+ Function to calculate padding given the index of the missing element.
+
Returns a sequence that is at least as wide/long as the width/length
specified by the parameter.
@@ -2919,11 +3207,11 @@
a + b);
+ var source = new[] { "a", "b", "c", "d" };
+ var result = source.Pairwise((a, b) => a + b);
]]>
The result variable, when iterated over, will yield
- 579 and 1245, in turn.
+ "ab", "bc" and "cd", in turn.
@@ -3780,7 +4068,7 @@
- Peforms a scan (inclusive prefix sum) on a sequence of elements.
+ Performs a scan (inclusive prefix sum) on a sequence of elements.
An inclusive prefix sum returns an equal-length sequence where the
@@ -3828,6 +4116,50 @@
Transformation operation
The scanned sequence
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states. An
+ additional parameter specifies the comparer to use to compare keys.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+ The equality comparer to use to determine
+ whether or not keys are equal. If null, the default equality
+ comparer for is used.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
Peforms a right-associative scan (inclusive prefix) on a sequence of elements.
@@ -5394,7 +5726,10 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5417,19 +5752,16 @@
"2B", "3C", "0D" in turn.
-
- If the two input sequences are of different lengths then the result
- sequence will always be as long as the longer of the two input
- sequences. The default value of the shorter sequence element type
- is used for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5455,20 +5787,16 @@
"2Bb", "3Cc", "0Dd", "0e" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding. This operator uses deferred execution and streams its
- results.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence
Type of elements in second sequence
@@ -5497,19 +5825,14 @@
"2BbFalse", "3CcTrue", "0DdFalse", "0eTrue", "0\0False" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5531,9 +5854,10 @@
- If the two input sequences are of different lengths, the result
- sequence is terminated as soon as the shortest input sequence is
- exhausted.
+ If the input sequences are of different lengths, the result sequence
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
+
This operator uses deferred execution and streams its results.
@@ -5541,7 +5865,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5568,7 +5893,8 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
@@ -5577,7 +5903,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5607,103 +5934,312 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
-
-
- Represents options for a query whose results evaluate asynchronously.
-
-
-
-
- The default options used for a query whose results evaluate
- asynchronously.
-
-
-
-
- Gets a positive (non-zero) integer that specifies the maximum
- number of asynchronous operations to have in-flight concurrently
- or null to mean unlimited concurrency.
-
-
-
-
- Get the scheduler to be used for any workhorse task.
-
-
-
+
- Get a Boolean that determines whether results should be ordered
- the same as the source.
+
+ Provides a set of static methods for querying objects that
+ implement .
+
+ THE METHODS ARE EXPERIMENTAL. THEY MAY BE UNSTABLE AND
+ UNTESTED. THEY MAY BE REMOVED FROM A FUTURE MAJOR OR MINOR RELEASE AND
+ POSSIBLY WITHOUT NOTICE. USE THEM AT YOUR OWN RISK. THE METHODS ARE
+ PUBLISHED FOR FIELD EXPERIMENTATION TO SOLICIT FEEDBACK ON THEIR
+ UTILITY AND DESIGN/IMPLEMENTATION DEFECTS.
-
+
- Returns new options with the given concurrency limit.
+ Applies two accumulator queries sequentially in a single
+ pass over a sequence.
-
- The maximum concurrent asynchronous operation to keep in flight.
- Use null to mean unbounded concurrency.
- Options with the new setting.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
- Returns new options with the given scheduler.
+ Applies three accumulator queries sequentially in a single
+ pass over a sequence.
-
- The scheduler to use to for the workhorse task.
- Options with the new setting.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
- Returns new options with the given Boolean indicating whether or
- not the results should be returned in the order of the source.
+ Applies four accumulator queries sequentially in a single
+ pass over a sequence.
-
- A Boolean where true means results are in source order and
- false means that results can be delivered in order of
- efficiency.
- Options with the new setting.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
- Represents a sequence whose elements or results evaluate asynchronously.
+ Applies five accumulator queries sequentially in a single
+ pass over a sequence.
-
- The type of the source elements.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
- The options that determine how the sequence evaluation behaves when
- it is iterated.
+ Applies six accumulator queries sequentially in a single
+ pass over a sequence.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the result of the sixth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+ The sixth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
- Returns a new query that will use the given options.
+ Applies seven accumulator queries sequentially in a single
+ pass over a sequence.
- The new options to use.
-
- Returns a new query using the supplied options.
-
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the result of the sixth accumulator.
+ The type of the result of the seventh accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+ The sixth accumulator.
+ The seventh accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
-
- Provides a set of static methods for querying objects that
- implement .
-
- THE METHODS ARE EXPERIMENTAL. THEY MAY BE UNSTABLE AND
- UNTESTED. THEY MAY BE REMOVED FROM A FUTURE MAJOR OR MINOR RELEASE AND
- POSSIBLY WITHOUT NOTICE. USE THEM AT YOUR OWN RISK. THE METHODS ARE
- PUBLISHED FOR FIELD EXPERIMENTATION TO SOLICIT FEEDBACK ON THEIR
- UTILITY AND DESIGN/IMPLEMENTATION DEFECTS.
+ Applies eight accumulator queries sequentially in a single
+ pass over a sequence.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the result of the sixth accumulator.
+ The type of the result of the seventh accumulator.
+ The type of the result of the eighth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+ The sixth accumulator.
+ The seventh accumulator.
+ The eighth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
@@ -5949,6 +6485,85 @@
(though never simultaneously) may iterate over the sequence.
+
+
+ Represents options for a query whose results evaluate asynchronously.
+
+
+
+
+ The default options used for a query whose results evaluate
+ asynchronously.
+
+
+
+
+ Gets a positive (non-zero) integer that specifies the maximum
+ number of asynchronous operations to have in-flight concurrently
+ or null to mean unlimited concurrency.
+
+
+
+
+ Get the scheduler to be used for any workhorse task.
+
+
+
+
+ Get a Boolean that determines whether results should be ordered
+ the same as the source.
+
+
+
+
+ Returns new options with the given concurrency limit.
+
+
+ The maximum concurrent asynchronous operation to keep in flight.
+ Use null to mean unbounded concurrency.
+ Options with the new setting.
+
+
+
+ Returns new options with the given scheduler.
+
+
+ The scheduler to use to for the workhorse task.
+ Options with the new setting.
+
+
+
+ Returns new options with the given Boolean indicating whether or
+ not the results should be returned in the order of the source.
+
+
+ A Boolean where true means results are in source order and
+ false means that results can be delivered in order of
+ efficiency.
+ Options with the new setting.
+
+
+
+ Represents a sequence whose elements or results evaluate asynchronously.
+
+
+ The type of the source elements.
+
+
+
+ The options that determine how the sequence evaluation behaves when
+ it is iterated.
+
+
+
+
+ Returns a new query that will use the given options.
+
+ The new options to use.
+
+ Returns a new query using the supplied options.
+
+
Acquire extension.
@@ -5969,6 +6584,226 @@
This operator executes immediately.
+
+ Aggregate extension.
+
+
+
+ Applies two accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies three accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies four accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies five accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies six accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies seven accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies eight accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of eighth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+ The seed value for the eighth accumulator.
+ The eighth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
AggregateRight extension.
@@ -6120,7 +6955,12 @@
Type of elements in sequence.
Source sequence.
Count to assert.
- Function that returns the object to throw.
+
+ Function that receives a comparison (a negative integer if actual
+ count is less than and a positive integer
+ if actual count is greater than ) and
+ as arguments and which returns the
+ object to throw.
Returns the original sequence as long it is contains the
number of elements specified by .
@@ -6749,7 +7589,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -6762,6 +7603,9 @@
A sequence that contains elements of the two input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the two input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -6797,6 +7638,9 @@
A sequence that contains elements of the three input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
- If the three input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence
Type of elements in second sequence
@@ -6834,6 +7676,9 @@
A sequence that contains elements of the four input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the four input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
@@ -7255,8 +8096,33 @@
and all nested sequences for which the predicate function
returned true.
- is null.
- is null.
+
+ is null.
+
+ is null.
+
+
+
+ Flattens a sequence containing arbitrarily-nested sequences. An
+ additional parameter specifies a function that projects an inner
+ sequence via a property of an object.
+
+ The sequence that will be flattened.
+
+ A function that receives each element of the sequence as an object
+ and projects an inner sequence to be flattened. If the function
+ returns null then the object argument is considered a leaf
+ of the flattening process.
+
+
+ A sequence that contains the elements of
+ and all nested sequences projected via the
+ function.
+
+
+ is null.
+
+ is null.
Fold extension.
@@ -8009,6 +8875,47 @@
This operator uses deferred execution and streams its
results.
+
+ IndexBy extension.
+
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+ An additional parameter specifies a comparer to use for testing the
+ equivalence of keys.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ The equality comparer to use to determine whether or not keys are
+ equal. If null, the default equality comparer for
+ is used.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
Insert extension.
@@ -8762,7 +9669,9 @@
The type of the elements of .
The sequence to pad.
The width/length below which to pad.
- Function to calculate padding.
+
+ Function to calculate padding given the index of the missing element.
+
Returns a sequence that is at least as wide/long as the width/length
specified by the parameter.
@@ -8801,11 +9710,11 @@
a + b);
+ var source = new[] { "a", "b", "c", "d" };
+ var result = source.Pairwise((a, b) => a + b);
]]>
The result variable, when iterated over, will yield
- 579 and 1245, in turn.
+ "ab", "bc" and "cd", in turn.
@@ -9529,7 +10438,7 @@
- Peforms a scan (inclusive prefix sum) on a sequence of elements.
+ Performs a scan (inclusive prefix sum) on a sequence of elements.
An inclusive prefix sum returns an equal-length sequence where the
@@ -9577,6 +10486,53 @@
Transformation operation
The scanned sequence
+
+ ScanBy extension.
+
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states. An
+ additional parameter specifies the comparer to use to compare keys.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+ The equality comparer to use to determine
+ whether or not keys are equal. If null, the default equality
+ comparer for is used.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
ScanRight extension.
@@ -11062,7 +12018,10 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11085,19 +12044,16 @@
"2B", "3C", "0D" in turn.
-
- If the two input sequences are of different lengths then the result
- sequence will always be as long as the longer of the two input
- sequences. The default value of the shorter sequence element type
- is used for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11123,20 +12079,16 @@
"2Bb", "3Cc", "0Dd", "0e" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding. This operator uses deferred execution and streams its
- results.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence
Type of elements in second sequence
@@ -11165,13 +12117,7 @@
"2BbFalse", "3CcTrue", "0DdFalse", "0eTrue", "0\0False" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
@@ -11179,8 +12125,9 @@
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11202,9 +12149,10 @@
- If the two input sequences are of different lengths, the result
- sequence is terminated as soon as the shortest input sequence is
- exhausted.
+ If the input sequences are of different lengths, the result sequence
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
+
This operator uses deferred execution and streams its results.
@@ -11212,7 +12160,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11239,7 +12188,8 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
@@ -11248,7 +12198,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11278,7 +12229,8 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
@@ -11409,6 +12361,28 @@
of an item to prepend, an item to append and the source.
+
+
+ Provides a set of static methods for writing in-memory queries over observable sequences.
+
+
+
+
+ Subscribes an element handler and a completion handler to an
+ observable sequence.
+
+ Type of elements in .
+ Observable sequence to subscribe to.
+
+ Action to invoke for each element in .
+
+ Action to invoke upon exceptional termination of the
+ .
+
+ Action to invoke upon graceful termination of .
+ The subscription, which when disposed, will unsubscribe
+ from .
+
The exception that is thrown for a sequence that fails a condition.
diff --git a/morelinq.3.2.0/lib/netstandard1.0/MoreLinq.dll b/morelinq.3.2.0/lib/netstandard1.0/MoreLinq.dll
new file mode 100644
index 0000000..0641593
Binary files /dev/null and b/morelinq.3.2.0/lib/netstandard1.0/MoreLinq.dll differ
diff --git a/morelinq.3.2.0/lib/netstandard1.0/MoreLinq.pdb b/morelinq.3.2.0/lib/netstandard1.0/MoreLinq.pdb
new file mode 100644
index 0000000..467a0e1
Binary files /dev/null and b/morelinq.3.2.0/lib/netstandard1.0/MoreLinq.pdb differ
diff --git a/morelinq.3.0.0/lib/netstandard2.0/MoreLinq.xml b/morelinq.3.2.0/lib/netstandard1.0/MoreLinq.xml
similarity index 90%
rename from morelinq.3.0.0/lib/netstandard2.0/MoreLinq.xml
rename to morelinq.3.2.0/lib/netstandard1.0/MoreLinq.xml
index 1b9a116..d1fd925 100644
--- a/morelinq.3.0.0/lib/netstandard2.0/MoreLinq.xml
+++ b/morelinq.3.2.0/lib/netstandard1.0/MoreLinq.xml
@@ -27,6 +27,223 @@
This operator executes immediately.
+
+
+ Applies two accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies three accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies four accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies five accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies six accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies seven accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies eight accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of eighth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+ The seed value for the eighth accumulator.
+ The eighth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
Applies a right-associative accumulator function over a sequence.
@@ -176,7 +393,12 @@
Type of elements in sequence.
Source sequence.
Count to assert.
- Function that returns the object to throw.
+
+ Function that receives a comparison (a negative integer if actual
+ count is less than and a positive integer
+ if actual count is greater than ) and
+ as arguments and which returns the
+ object to throw.
Returns the original sequence as long it is contains the
number of elements specified by .
@@ -783,7 +1005,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -796,6 +1019,9 @@
A sequence that contains elements of the two input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the two input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -831,6 +1054,9 @@
A sequence that contains elements of the three input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
- If the three input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence
Type of elements in second sequence
@@ -868,6 +1092,9 @@
A sequence that contains elements of the four input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the four input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
@@ -1213,8 +1436,33 @@
and all nested sequences for which the predicate function
returned true.
- is null.
- is null.
+
+ is null.
+
+ is null.
+
+
+
+ Flattens a sequence containing arbitrarily-nested sequences. An
+ additional parameter specifies a function that projects an inner
+ sequence via a property of an object.
+
+ The sequence that will be flattened.
+
+ A function that receives each element of the sequence as an object
+ and projects an inner sequence to be flattened. If the function
+ returns null then the object argument is considered a leaf
+ of the flattening process.
+
+
+ A sequence that contains the elements of
+ and all nested sequences projected via the
+ function.
+
+
+ is null.
+
+ is null.
@@ -2043,6 +2291,44 @@
This operator uses deferred execution and streams its
results.
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+ An additional parameter specifies a comparer to use for testing the
+ equivalence of keys.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ The equality comparer to use to determine whether or not keys are
+ equal. If null, the default equality comparer for
+ is used.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
Inserts the elements of a sequence into another sequence at a
@@ -2883,7 +3169,9 @@
The type of the elements of .
The sequence to pad.
The width/length below which to pad.
- Function to calculate padding.
+
+ Function to calculate padding given the index of the missing element.
+
Returns a sequence that is at least as wide/long as the width/length
specified by the parameter.
@@ -2919,11 +3207,11 @@
a + b);
+ var source = new[] { "a", "b", "c", "d" };
+ var result = source.Pairwise((a, b) => a + b);
]]>
The result variable, when iterated over, will yield
- 579 and 1245, in turn.
+ "ab", "bc" and "cd", in turn.
@@ -3780,7 +4068,7 @@
- Peforms a scan (inclusive prefix sum) on a sequence of elements.
+ Performs a scan (inclusive prefix sum) on a sequence of elements.
An inclusive prefix sum returns an equal-length sequence where the
@@ -3828,6 +4116,50 @@
Transformation operation
The scanned sequence
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states. An
+ additional parameter specifies the comparer to use to compare keys.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+ The equality comparer to use to determine
+ whether or not keys are equal. If null, the default equality
+ comparer for is used.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
Peforms a right-associative scan (inclusive prefix) on a sequence of elements.
@@ -4634,66 +4966,6 @@
resulting array.
-
-
- Appends elements in the sequence as rows of a given object.
-
- The type of the elements of .
-
- The source.
-
-
- A or subclass representing the source.
-
- This operator uses immediate execution.
-
-
-
- Appends elements in the sequence as rows of a given
- object with a set of lambda expressions specifying which members (property
- or field) of each element in the sequence will supply the column values.
-
- The type of the elements of .
- The source.
- Expressions providing access to element members.
-
- A representing the source.
-
- This operator uses immediate execution.
-
-
-
- Converts a sequence to a object.
-
- The type of the elements of .
- The source.
-
- A representing the source.
-
- This operator uses immediate execution.
-
-
-
- Appends elements in the sequence as rows of a given
- object with a set of lambda expressions specifying which members (property
- or field) of each element in the sequence will supply the column values.
-
- The type of the elements of .
- The type of the input and resulting object.
- The source.
- The type of object where to add rows
- Expressions providing access to element members.
-
- A or subclass representing the source.
-
- This operator uses immediate execution.
-
-
-
- The resulting array may contain null entries and those represent
- columns for which there is no source member supplying a value.
-
-
Creates a delimited string from a sequence of values and
@@ -5394,7 +5666,10 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5417,19 +5692,16 @@
"2B", "3C", "0D" in turn.
-
- If the two input sequences are of different lengths then the result
- sequence will always be as long as the longer of the two input
- sequences. The default value of the shorter sequence element type
- is used for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5455,20 +5727,16 @@
"2Bb", "3Cc", "0Dd", "0e" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding. This operator uses deferred execution and streams its
- results.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence
Type of elements in second sequence
@@ -5497,19 +5765,14 @@
"2BbFalse", "3CcTrue", "0DdFalse", "0eTrue", "0\0False" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5531,9 +5794,10 @@
- If the two input sequences are of different lengths, the result
- sequence is terminated as soon as the shortest input sequence is
- exhausted.
+ If the input sequences are of different lengths, the result sequence
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
+
This operator uses deferred execution and streams its results.
@@ -5541,7 +5805,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5568,7 +5833,8 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
@@ -5577,7 +5843,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5607,91 +5874,13 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
-
-
- Represents options for a query whose results evaluate asynchronously.
-
-
-
-
- The default options used for a query whose results evaluate
- asynchronously.
-
-
-
-
- Gets a positive (non-zero) integer that specifies the maximum
- number of asynchronous operations to have in-flight concurrently
- or null to mean unlimited concurrency.
-
-
-
-
- Get the scheduler to be used for any workhorse task.
-
-
-
-
- Get a Boolean that determines whether results should be ordered
- the same as the source.
-
-
-
-
- Returns new options with the given concurrency limit.
-
-
- The maximum concurrent asynchronous operation to keep in flight.
- Use null to mean unbounded concurrency.
- Options with the new setting.
-
-
-
- Returns new options with the given scheduler.
-
-
- The scheduler to use to for the workhorse task.
- Options with the new setting.
-
-
-
- Returns new options with the given Boolean indicating whether or
- not the results should be returned in the order of the source.
-
-
- A Boolean where true means results are in source order and
- false means that results can be delivered in order of
- efficiency.
- Options with the new setting.
-
-
-
- Represents a sequence whose elements or results evaluate asynchronously.
-
-
- The type of the source elements.
-
-
-
- The options that determine how the sequence evaluation behaves when
- it is iterated.
-
-
-
-
- Returns a new query that will use the given options.
-
- The new options to use.
-
- Returns a new query using the supplied options.
-
-
@@ -5705,223 +5894,290 @@
UTILITY AND DESIGN/IMPLEMENTATION DEFECTS.
-
+
- Converts a query whose results evaluate asynchronously to use
- sequential instead of concurrent evaluation.
+ Applies two accumulator queries sequentially in a single
+ pass over a sequence.
- The type of the source elements.
- The source sequence.
- The converted sequence.
-
-
-
- Returns a query whose results evaluate asynchronously to use a
- concurrency limit.
-
- The type of the source elements.
- The source sequence.
-
-
- A query whose results evaluate asynchronously using the given
- concurrency limit.
-
-
-
- Returns a query whose results evaluate asynchronously and
- concurrently with no defined limitation on concurrency.
-
- The type of the source elements.
- The source sequence.
-
- A query whose results evaluate asynchronously using no defined
- limitation on concurrency.
-
-
-
- Returns a query whose results evaluate asynchronously and uses the
- given scheduler for the workhorse task.
-
- The type of the source elements.
- The source sequence.
- The scheduler to use.
-
- A query whose results evaluate asynchronously and uses the
- given scheduler for the workhorse task.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
- Returns a query whose results evaluate asynchronously but which
- are returned in the order of the source.
+ Applies three accumulator queries sequentially in a single
+ pass over a sequence.
- The type of the source elements.
- The source sequence.
-
- A query whose results evaluate asynchronously but which
- are returned in the order of the source.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
- Internally, the asynchronous operations will be done concurrently
- but the results will be yielded in order.
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
-
+
- Returns a query whose results evaluate asynchronously but which
- are returned without guarantee of the source order.
+ Applies four accumulator queries sequentially in a single
+ pass over a sequence.
- The type of the source elements.
- The source sequence.
-
- A query whose results evaluate asynchronously but which
- are returned without guarantee of the source order.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
- Returns a query whose results evaluate asynchronously and a Boolean
- argument indicating whether the source order of the results is
- preserved.
+ Applies five accumulator queries sequentially in a single
+ pass over a sequence.
- The type of the source elements.
- The source sequence.
-
- A Boolean where true means results are in source order and
- false means that results can be delivered in order of
- efficiency.
-
- A query whose results evaluate asynchronously and returns the
- results ordered or unordered based on .
-
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
- Creates a sequence query that streams the result of each task in
- the source sequence as it completes asynchronously.
+ Applies six accumulator queries sequentially in a single
+ pass over a sequence.
-
- The type of each task's result as well as the type of the elements
- of the resulting sequence.
- The source sequence of tasks.
-
- A sequence query that streams the result of each task in
- as it completes asynchronously.
-
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the result of the sixth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+ The sixth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+ This operator executes immediately.
- This method uses deferred execution semantics. The results are
- yielded as each asynchronous task completes and, by default,
- not guaranteed to be based on the source sequence order. If order
- is important, compose further with
- .
-
- This method starts a new task where the tasks are awaited. If the
- resulting sequence is partially consumed then there's a good chance
- that some tasks will be wasted, those that are in flight.
-
- The tasks in are already assumed to be in
- flight therefore changing concurrency options via
- , or
- will only change how many
- tasks are awaited at any given moment, not how many will be
- kept in flight. For the latter effect, use the other overload.
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
-
+
- Creates a sequence query that streams the result of each task in
- the source sequence as it completes asynchronously. A
- is passed for each asynchronous
- evaluation to abort any asynchronous operations in flight if the
- sequence is not fully iterated.
+ Applies seven accumulator queries sequentially in a single
+ pass over a sequence.
- The type of the source elements.
- The type of the result elements.
- The source sequence.
- A function to begin the asynchronous
- evaluation of each element, the second parameter of which is a
- that can be used to abort
- asynchronous operations.
-
- A sequence query that stream its results as they are
- evaluated asynchronously.
-
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the result of the sixth accumulator.
+ The type of the result of the seventh accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+ The sixth accumulator.
+ The seventh accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+ This operator executes immediately.
- This method uses deferred execution semantics. The results are
- yielded as each asynchronous evaluation completes and, by default,
- not guaranteed to be based on the source sequence order. If order
- is important, compose further with
- .
-
- This method starts a new task where the asynchronous evaluations
- take place and awaited. If the resulting sequence is partially
- consumed then there's a good chance that some projection work will
- be wasted and a cooperative effort is done that depends on the
- function (via a
- as its second argument) to cancel
- those in flight.
-
- The function should be designed to be
- thread-agnostic.
-
- The task returned by should be started
- when the function is called (and not just a mere projection)
- otherwise changing concurrency options via
- , or
- will only change how many
- tasks are awaited at any given moment, not how many will be
- kept in flight.
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
-
+
- Awaits completion of all asynchronous evaluations irrespective of
- whether they succeed or fail. An additional argument specifies a
- function that projects the final result given the source item and
- completed task.
+ Applies eight accumulator queries sequentially in a single
+ pass over a sequence.
- The type of the source elements.
- The type of the tasks's result.
- The type of the result elements.
- The source sequence.
- A function to begin the asynchronous
- evaluation of each element, the second parameter of which is a
- that can be used to abort
- asynchronous operations.
- A fucntion that projects the final
- result given the source item and its asynchronous completion
- result.
-
- A sequence query that stream its results as they are
- evaluated asynchronously.
-
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the result of the sixth accumulator.
+ The type of the result of the seventh accumulator.
+ The type of the result of the eighth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+ The sixth accumulator.
+ The seventh accumulator.
+ The eighth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+ This operator executes immediately.
- This method uses deferred execution semantics. The results are
- yielded as each asynchronous evaluation completes and, by default,
- not guaranteed to be based on the source sequence order. If order
- is important, compose further with
- .
-
- This method starts a new task where the asynchronous evaluations
- take place and awaited. If the resulting sequence is partially
- consumed then there's a good chance that some projection work will
- be wasted and a cooperative effort is done that depends on the
- function (via a
- as its second argument) to cancel
- those in flight.
-
- The function should be designed to be
- thread-agnostic.
-
- The task returned by should be started
- when the function is called (and not just a mere projection)
- otherwise changing concurrency options via
- , or
- will only change how many
- tasks are awaited at any given moment, not how many will be
- kept in flight.
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
@@ -5969,6 +6225,226 @@
This operator executes immediately.
+
+ Aggregate extension.
+
+
+
+ Applies two accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies three accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies four accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies five accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies six accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies seven accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies eight accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of eighth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+ The seed value for the eighth accumulator.
+ The eighth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
AggregateRight extension.
@@ -6120,7 +6596,12 @@
Type of elements in sequence.
Source sequence.
Count to assert.
- Function that returns the object to throw.
+
+ Function that receives a comparison (a negative integer if actual
+ count is less than and a positive integer
+ if actual count is greater than ) and
+ as arguments and which returns the
+ object to throw.
Returns the original sequence as long it is contains the
number of elements specified by .
@@ -6749,7 +7230,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -6762,6 +7244,9 @@
A sequence that contains elements of the two input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the two input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -6797,6 +7279,9 @@
A sequence that contains elements of the three input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
- If the three input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence
Type of elements in second sequence
@@ -6834,6 +7317,9 @@
A sequence that contains elements of the four input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the four input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
@@ -7255,8 +7737,33 @@
and all nested sequences for which the predicate function
returned true.
- is null.
- is null.
+
+ is null.
+
+ is null.
+
+
+
+ Flattens a sequence containing arbitrarily-nested sequences. An
+ additional parameter specifies a function that projects an inner
+ sequence via a property of an object.
+
+ The sequence that will be flattened.
+
+ A function that receives each element of the sequence as an object
+ and projects an inner sequence to be flattened. If the function
+ returns null then the object argument is considered a leaf
+ of the flattening process.
+
+
+ A sequence that contains the elements of
+ and all nested sequences projected via the
+ function.
+
+
+ is null.
+
+ is null.
Fold extension.
@@ -8009,6 +8516,47 @@
This operator uses deferred execution and streams its
results.
+
+ IndexBy extension.
+
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+ An additional parameter specifies a comparer to use for testing the
+ equivalence of keys.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ The equality comparer to use to determine whether or not keys are
+ equal. If null, the default equality comparer for
+ is used.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
Insert extension.
@@ -8762,7 +9310,9 @@
The type of the elements of .
The sequence to pad.
The width/length below which to pad.
- Function to calculate padding.
+
+ Function to calculate padding given the index of the missing element.
+
Returns a sequence that is at least as wide/long as the width/length
specified by the parameter.
@@ -8801,11 +9351,11 @@
a + b);
+ var source = new[] { "a", "b", "c", "d" };
+ var result = source.Pairwise((a, b) => a + b);
]]>
The result variable, when iterated over, will yield
- 579 and 1245, in turn.
+ "ab", "bc" and "cd", in turn.
@@ -9529,7 +10079,7 @@
- Peforms a scan (inclusive prefix sum) on a sequence of elements.
+ Performs a scan (inclusive prefix sum) on a sequence of elements.
An inclusive prefix sum returns an equal-length sequence where the
@@ -9577,6 +10127,53 @@
Transformation operation
The scanned sequence
+
+ ScanBy extension.
+
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states. An
+ additional parameter specifies the comparer to use to compare keys.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+ The equality comparer to use to determine
+ whether or not keys are equal. If null, the default equality
+ comparer for is used.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
ScanRight extension.
@@ -11062,7 +11659,10 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11085,19 +11685,16 @@
"2B", "3C", "0D" in turn.
-
- If the two input sequences are of different lengths then the result
- sequence will always be as long as the longer of the two input
- sequences. The default value of the shorter sequence element type
- is used for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11123,20 +11720,16 @@
"2Bb", "3Cc", "0Dd", "0e" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding. This operator uses deferred execution and streams its
- results.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence
Type of elements in second sequence
@@ -11165,13 +11758,7 @@
"2BbFalse", "3CcTrue", "0DdFalse", "0eTrue", "0\0False" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
@@ -11179,8 +11766,9 @@
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11202,9 +11790,10 @@
- If the two input sequences are of different lengths, the result
- sequence is terminated as soon as the shortest input sequence is
- exhausted.
+ If the input sequences are of different lengths, the result sequence
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
+
This operator uses deferred execution and streams its results.
@@ -11212,7 +11801,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11239,7 +11829,8 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
@@ -11248,7 +11839,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -11278,69 +11870,13 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
-
- ToDataTable extension.
-
-
-
- Converts a sequence to a object.
-
- The type of the elements of .
- The source.
-
- A representing the source.
-
- This operator uses immediate execution.
-
-
-
- Appends elements in the sequence as rows of a given
- object with a set of lambda expressions specifying which members (property
- or field) of each element in the sequence will supply the column values.
-
- The type of the elements of .
- The source.
- Expressions providing access to element members.
-
- A representing the source.
-
- This operator uses immediate execution.
-
-
-
- Appends elements in the sequence as rows of a given object.
-
- The type of the elements of .
-
- The source.
-
-
- A or subclass representing the source.
-
- This operator uses immediate execution.
-
-
-
- Appends elements in the sequence as rows of a given
- object with a set of lambda expressions specifying which members (property
- or field) of each element in the sequence will supply the column values.
-
- The type of the elements of .
- The type of the input and resulting object.
- The source.
- The type of object where to add rows
- Expressions providing access to element members.
-
- A or subclass representing the source.
-
- This operator uses immediate execution.
-
Represents an list-like (indexable) data structure.
@@ -11409,6 +11945,28 @@
of an item to prepend, an item to append and the source.
+
+
+ Provides a set of static methods for writing in-memory queries over observable sequences.
+
+
+
+
+ Subscribes an element handler and a completion handler to an
+ observable sequence.
+
+ Type of elements in .
+ Observable sequence to subscribe to.
+
+ Action to invoke for each element in .
+
+ Action to invoke upon exceptional termination of the
+ .
+
+ Action to invoke upon graceful termination of .
+ The subscription, which when disposed, will unsubscribe
+ from .
+
The exception that is thrown for a sequence that fails a condition.
@@ -11435,13 +11993,5 @@
A message that describes the error.
The exception that is the cause of the current exception.
-
-
- Initializes a new instance of the class
- with serialized data.
-
- The object that holds the serialized object data.
- The contextual information about the source or destination.
-
diff --git a/morelinq.3.2.0/lib/netstandard2.0/MoreLinq.dll b/morelinq.3.2.0/lib/netstandard2.0/MoreLinq.dll
new file mode 100644
index 0000000..c8f5169
Binary files /dev/null and b/morelinq.3.2.0/lib/netstandard2.0/MoreLinq.dll differ
diff --git a/morelinq.3.2.0/lib/netstandard2.0/MoreLinq.pdb b/morelinq.3.2.0/lib/netstandard2.0/MoreLinq.pdb
new file mode 100644
index 0000000..4864f4b
Binary files /dev/null and b/morelinq.3.2.0/lib/netstandard2.0/MoreLinq.pdb differ
diff --git a/morelinq.3.0.0/lib/netstandard1.0/MoreLinq.xml b/morelinq.3.2.0/lib/netstandard2.0/MoreLinq.xml
similarity index 87%
rename from morelinq.3.0.0/lib/netstandard1.0/MoreLinq.xml
rename to morelinq.3.2.0/lib/netstandard2.0/MoreLinq.xml
index 05ca752..79de6ed 100644
--- a/morelinq.3.0.0/lib/netstandard1.0/MoreLinq.xml
+++ b/morelinq.3.2.0/lib/netstandard2.0/MoreLinq.xml
@@ -27,6 +27,223 @@
This operator executes immediately.
+
+
+ Applies two accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies three accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies four accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies five accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies six accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies seven accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies eight accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of eighth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+ The seed value for the eighth accumulator.
+ The eighth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
Applies a right-associative accumulator function over a sequence.
@@ -176,7 +393,12 @@
Type of elements in sequence.
Source sequence.
Count to assert.
- Function that returns the object to throw.
+
+ Function that receives a comparison (a negative integer if actual
+ count is less than and a positive integer
+ if actual count is greater than ) and
+ as arguments and which returns the
+ object to throw.
Returns the original sequence as long it is contains the
number of elements specified by .
@@ -783,7 +1005,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -796,6 +1019,9 @@
A sequence that contains elements of the two input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the two input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -831,6 +1054,9 @@
A sequence that contains elements of the three input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
- If the three input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence
Type of elements in second sequence
@@ -868,6 +1092,9 @@
A sequence that contains elements of the four input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the four input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
@@ -1213,8 +1436,33 @@
and all nested sequences for which the predicate function
returned true.
- is null.
- is null.
+
+ is null.
+
+ is null.
+
+
+
+ Flattens a sequence containing arbitrarily-nested sequences. An
+ additional parameter specifies a function that projects an inner
+ sequence via a property of an object.
+
+ The sequence that will be flattened.
+
+ A function that receives each element of the sequence as an object
+ and projects an inner sequence to be flattened. If the function
+ returns null then the object argument is considered a leaf
+ of the flattening process.
+
+
+ A sequence that contains the elements of
+ and all nested sequences projected via the
+ function.
+
+
+ is null.
+
+ is null.
@@ -2043,6 +2291,44 @@
This operator uses deferred execution and streams its
results.
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+ An additional parameter specifies a comparer to use for testing the
+ equivalence of keys.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ The equality comparer to use to determine whether or not keys are
+ equal. If null, the default equality comparer for
+ is used.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
Inserts the elements of a sequence into another sequence at a
@@ -2883,7 +3169,9 @@
The type of the elements of .
The sequence to pad.
The width/length below which to pad.
- Function to calculate padding.
+
+ Function to calculate padding given the index of the missing element.
+
Returns a sequence that is at least as wide/long as the width/length
specified by the parameter.
@@ -2919,11 +3207,11 @@
a + b);
+ var source = new[] { "a", "b", "c", "d" };
+ var result = source.Pairwise((a, b) => a + b);
]]>
The result variable, when iterated over, will yield
- 579 and 1245, in turn.
+ "ab", "bc" and "cd", in turn.
@@ -3780,7 +4068,7 @@
- Peforms a scan (inclusive prefix sum) on a sequence of elements.
+ Performs a scan (inclusive prefix sum) on a sequence of elements.
An inclusive prefix sum returns an equal-length sequence where the
@@ -3828,6 +4116,50 @@
Transformation operation
The scanned sequence
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states. An
+ additional parameter specifies the comparer to use to compare keys.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+ The equality comparer to use to determine
+ whether or not keys are equal. If null, the default equality
+ comparer for is used.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
Peforms a right-associative scan (inclusive prefix) on a sequence of elements.
@@ -4634,6 +4966,66 @@
resulting array.
+
+
+ Appends elements in the sequence as rows of a given object.
+
+ The type of the elements of .
+
+ The source.
+
+
+ A or subclass representing the source.
+
+ This operator uses immediate execution.
+
+
+
+ Appends elements in the sequence as rows of a given
+ object with a set of lambda expressions specifying which members (property
+ or field) of each element in the sequence will supply the column values.
+
+ The type of the elements of .
+ The source.
+ Expressions providing access to element members.
+
+ A representing the source.
+
+ This operator uses immediate execution.
+
+
+
+ Converts a sequence to a object.
+
+ The type of the elements of .
+ The source.
+
+ A representing the source.
+
+ This operator uses immediate execution.
+
+
+
+ Appends elements in the sequence as rows of a given
+ object with a set of lambda expressions specifying which members (property
+ or field) of each element in the sequence will supply the column values.
+
+ The type of the elements of .
+ The type of the input and resulting object.
+ The source.
+ The type of object where to add rows
+ Expressions providing access to element members.
+
+ A or subclass representing the source.
+
+ This operator uses immediate execution.
+
+
+
+ The resulting array may contain null entries and those represent
+ columns for which there is no source member supplying a value.
+
+
Creates a delimited string from a sequence of values and
@@ -5334,7 +5726,10 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5357,19 +5752,16 @@
"2B", "3C", "0D" in turn.
-
- If the two input sequences are of different lengths then the result
- sequence will always be as long as the longer of the two input
- sequences. The default value of the shorter sequence element type
- is used for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5395,20 +5787,16 @@
"2Bb", "3Cc", "0Dd", "0e" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding. This operator uses deferred execution and streams its
- results.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence
Type of elements in second sequence
@@ -5437,19 +5825,14 @@
"2BbFalse", "3CcTrue", "0DdFalse", "0eTrue", "0\0False" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5471,9 +5854,10 @@
- If the two input sequences are of different lengths, the result
- sequence is terminated as soon as the shortest input sequence is
- exhausted.
+ If the input sequences are of different lengths, the result sequence
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
+
This operator uses deferred execution and streams its results.
@@ -5481,7 +5865,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5508,7 +5893,8 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
@@ -5517,7 +5903,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -5547,7 +5934,8 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
@@ -5566,79 +5954,885 @@
UTILITY AND DESIGN/IMPLEMENTATION DEFECTS.
-
+
- Creates a sequence that lazily caches the source as it is iterated
- for the first time, reusing the cache thereafter for future
- re-iterations. If the source is already cached or buffered then it
- is returned verbatim.
+ Applies two accumulator queries sequentially in a single
+ pass over a sequence.
-
- Type of elements in .
- The source sequence.
-
- Returns a sequence that corresponds to a cached version of the
- input sequence.
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
- The returned will cache items from
- in a thread-safe manner. Each thread can
- call its to acquire an
- iterator but the same iterator should not be used simultanesouly
- from multiple threads. The sequence supplied in
- is not expected to be thread-safe but it
- is required to be thread-agnostic because different threads
- (though never simultaneously) may iterate over the sequence.
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
-
- Acquire extension.
-
-
+
- Ensures that a source sequence of
- objects are all acquired successfully. If the acquisition of any
- one fails then those successfully
- acquired till that point are disposed.
+ Applies three accumulator queries sequentially in a single
+ pass over a sequence.
- Type of elements in sequence.
- Source sequence of objects.
-
- Returns an array of all the acquired
- objects in source order.
-
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
- This operator executes immediately.
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
-
- AggregateRight extension.
+
+
+ Applies four accumulator queries sequentially in a single
+ pass over a sequence.
+
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
-
+
- Applies a right-associative accumulator function over a sequence.
- This operator is the right-associative version of the
- LINQ operator.
+ Applies five accumulator queries sequentially in a single
+ pass over a sequence.
- The type of the elements of source.
- Source sequence.
- A right-associative accumulator function to be invoked on each element.
- The final accumulator value.
-
- i.ToString()).AggregateRight((a, b) => string.Format("({0}/{1})", a, b));
- ]]>
- The result variable will contain "(1/(2/(3/(4/5))))".
-
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
- This operator executes immediately.
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
-
+
- Applies a right-associative accumulator function over a sequence.
- The specified seed value is used as the initial accumulator value.
- This operator is the right-associative version of the
- LINQ operator.
+ Applies six accumulator queries sequentially in a single
+ pass over a sequence.
+
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the result of the sixth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+ The sixth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
+
+
+
+ Applies seven accumulator queries sequentially in a single
+ pass over a sequence.
+
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the result of the sixth accumulator.
+ The type of the result of the seventh accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+ The sixth accumulator.
+ The seventh accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
+
+
+
+ Applies eight accumulator queries sequentially in a single
+ pass over a sequence.
+
+ The type of elements in .
+ The type of the result of the first accumulator.
+ The type of the result of the second accumulator.
+ The type of the result of the third accumulator.
+ The type of the result of the fourth accumulator.
+ The type of the result of the fifth accumulator.
+ The type of the result of the sixth accumulator.
+ The type of the result of the seventh accumulator.
+ The type of the result of the eighth accumulator.
+ The type of the accumulated result.
+ The source sequence
+ The first accumulator.
+ The second accumulator.
+ The third accumulator.
+ The fourth accumulator.
+ The fifth accumulator.
+ The sixth accumulator.
+ The seventh accumulator.
+ The eighth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ An returned by an accumulator function
+ produced zero or more than a single aggregate result.
+
+
+ This operator executes immediately.
+
+ Each accumulator argument is a function that receives an
+ , which when subscribed to, produces the
+ items in the sequence and in original
+ order; the function must then return an
+ that produces a single aggregate on completion (when
+ is called. An error is raised
+ at run-time if the returned by an
+ accumulator function produces no result or produces more than a
+ single result.
+
+
+
+
+
+ Converts a query whose results evaluate asynchronously to use
+ sequential instead of concurrent evaluation.
+
+ The type of the source elements.
+ The source sequence.
+ The converted sequence.
+
+
+
+ Returns a query whose results evaluate asynchronously to use a
+ concurrency limit.
+
+ The type of the source elements.
+ The source sequence.
+
+
+ A query whose results evaluate asynchronously using the given
+ concurrency limit.
+
+
+
+ Returns a query whose results evaluate asynchronously and
+ concurrently with no defined limitation on concurrency.
+
+ The type of the source elements.
+ The source sequence.
+
+ A query whose results evaluate asynchronously using no defined
+ limitation on concurrency.
+
+
+
+ Returns a query whose results evaluate asynchronously and uses the
+ given scheduler for the workhorse task.
+
+ The type of the source elements.
+ The source sequence.
+ The scheduler to use.
+
+ A query whose results evaluate asynchronously and uses the
+ given scheduler for the workhorse task.
+
+
+
+ Returns a query whose results evaluate asynchronously but which
+ are returned in the order of the source.
+
+ The type of the source elements.
+ The source sequence.
+
+ A query whose results evaluate asynchronously but which
+ are returned in the order of the source.
+
+ Internally, the asynchronous operations will be done concurrently
+ but the results will be yielded in order.
+
+
+
+
+ Returns a query whose results evaluate asynchronously but which
+ are returned without guarantee of the source order.
+
+ The type of the source elements.
+ The source sequence.
+
+ A query whose results evaluate asynchronously but which
+ are returned without guarantee of the source order.
+
+
+
+ Returns a query whose results evaluate asynchronously and a Boolean
+ argument indicating whether the source order of the results is
+ preserved.
+
+ The type of the source elements.
+ The source sequence.
+
+ A Boolean where true means results are in source order and
+ false means that results can be delivered in order of
+ efficiency.
+
+ A query whose results evaluate asynchronously and returns the
+ results ordered or unordered based on .
+
+
+
+
+ Creates a sequence query that streams the result of each task in
+ the source sequence as it completes asynchronously.
+
+
+ The type of each task's result as well as the type of the elements
+ of the resulting sequence.
+ The source sequence of tasks.
+
+ A sequence query that streams the result of each task in
+ as it completes asynchronously.
+
+
+
+ This method uses deferred execution semantics. The results are
+ yielded as each asynchronous task completes and, by default,
+ not guaranteed to be based on the source sequence order. If order
+ is important, compose further with
+ .
+
+ This method starts a new task where the tasks are awaited. If the
+ resulting sequence is partially consumed then there's a good chance
+ that some tasks will be wasted, those that are in flight.
+
+ The tasks in are already assumed to be in
+ flight therefore changing concurrency options via
+ , or
+ will only change how many
+ tasks are awaited at any given moment, not how many will be
+ kept in flight. For the latter effect, use the other overload.
+
+
+
+
+
+ Creates a sequence query that streams the result of each task in
+ the source sequence as it completes asynchronously. A
+ is passed for each asynchronous
+ evaluation to abort any asynchronous operations in flight if the
+ sequence is not fully iterated.
+
+ The type of the source elements.
+ The type of the result elements.
+ The source sequence.
+ A function to begin the asynchronous
+ evaluation of each element, the second parameter of which is a
+ that can be used to abort
+ asynchronous operations.
+
+ A sequence query that stream its results as they are
+ evaluated asynchronously.
+
+
+
+ This method uses deferred execution semantics. The results are
+ yielded as each asynchronous evaluation completes and, by default,
+ not guaranteed to be based on the source sequence order. If order
+ is important, compose further with
+ .
+
+ This method starts a new task where the asynchronous evaluations
+ take place and awaited. If the resulting sequence is partially
+ consumed then there's a good chance that some projection work will
+ be wasted and a cooperative effort is done that depends on the
+ function (via a
+ as its second argument) to cancel
+ those in flight.
+
+ The function should be designed to be
+ thread-agnostic.
+
+ The task returned by should be started
+ when the function is called (and not just a mere projection)
+ otherwise changing concurrency options via
+ , or
+ will only change how many
+ tasks are awaited at any given moment, not how many will be
+ kept in flight.
+
+
+
+
+
+ Awaits completion of all asynchronous evaluations irrespective of
+ whether they succeed or fail. An additional argument specifies a
+ function that projects the final result given the source item and
+ completed task.
+
+ The type of the source elements.
+ The type of the tasks's result.
+ The type of the result elements.
+ The source sequence.
+ A function to begin the asynchronous
+ evaluation of each element, the second parameter of which is a
+ that can be used to abort
+ asynchronous operations.
+ A fucntion that projects the final
+ result given the source item and its asynchronous completion
+ result.
+
+ A sequence query that stream its results as they are
+ evaluated asynchronously.
+
+
+
+ This method uses deferred execution semantics. The results are
+ yielded as each asynchronous evaluation completes and, by default,
+ not guaranteed to be based on the source sequence order. If order
+ is important, compose further with
+ .
+
+ This method starts a new task where the asynchronous evaluations
+ take place and awaited. If the resulting sequence is partially
+ consumed then there's a good chance that some projection work will
+ be wasted and a cooperative effort is done that depends on the
+ function (via a
+ as its second argument) to cancel
+ those in flight.
+
+ The function should be designed to be
+ thread-agnostic.
+
+ The task returned by should be started
+ when the function is called (and not just a mere projection)
+ otherwise changing concurrency options via
+ , or
+ will only change how many
+ tasks are awaited at any given moment, not how many will be
+ kept in flight.
+
+
+
+
+
+ Creates a sequence that lazily caches the source as it is iterated
+ for the first time, reusing the cache thereafter for future
+ re-iterations. If the source is already cached or buffered then it
+ is returned verbatim.
+
+
+ Type of elements in .
+ The source sequence.
+
+ Returns a sequence that corresponds to a cached version of the
+ input sequence.
+
+ The returned will cache items from
+ in a thread-safe manner. Each thread can
+ call its to acquire an
+ iterator but the same iterator should not be used simultanesouly
+ from multiple threads. The sequence supplied in
+ is not expected to be thread-safe but it
+ is required to be thread-agnostic because different threads
+ (though never simultaneously) may iterate over the sequence.
+
+
+
+
+ Represents options for a query whose results evaluate asynchronously.
+
+
+
+
+ The default options used for a query whose results evaluate
+ asynchronously.
+
+
+
+
+ Gets a positive (non-zero) integer that specifies the maximum
+ number of asynchronous operations to have in-flight concurrently
+ or null to mean unlimited concurrency.
+
+
+
+
+ Get the scheduler to be used for any workhorse task.
+
+
+
+
+ Get a Boolean that determines whether results should be ordered
+ the same as the source.
+
+
+
+
+ Returns new options with the given concurrency limit.
+
+
+ The maximum concurrent asynchronous operation to keep in flight.
+ Use null to mean unbounded concurrency.
+ Options with the new setting.
+
+
+
+ Returns new options with the given scheduler.
+
+
+ The scheduler to use to for the workhorse task.
+ Options with the new setting.
+
+
+
+ Returns new options with the given Boolean indicating whether or
+ not the results should be returned in the order of the source.
+
+
+ A Boolean where true means results are in source order and
+ false means that results can be delivered in order of
+ efficiency.
+ Options with the new setting.
+
+
+
+ Represents a sequence whose elements or results evaluate asynchronously.
+
+
+ The type of the source elements.
+
+
+
+ The options that determine how the sequence evaluation behaves when
+ it is iterated.
+
+
+
+
+ Returns a new query that will use the given options.
+
+ The new options to use.
+
+ Returns a new query using the supplied options.
+
+
+
+ Acquire extension.
+
+
+
+ Ensures that a source sequence of
+ objects are all acquired successfully. If the acquisition of any
+ one fails then those successfully
+ acquired till that point are disposed.
+
+ Type of elements in sequence.
+ Source sequence of objects.
+
+ Returns an array of all the acquired
+ objects in source order.
+
+
+ This operator executes immediately.
+
+
+
+ Aggregate extension.
+
+
+
+ Applies two accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies three accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies four accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies five accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies six accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies seven accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+
+ Applies eight accumulators sequentially in a single pass over a
+ sequence.
+
+ The type of elements in .
+ The type of first accumulator value.
+ The type of second accumulator value.
+ The type of third accumulator value.
+ The type of fourth accumulator value.
+ The type of fifth accumulator value.
+ The type of sixth accumulator value.
+ The type of seventh accumulator value.
+ The type of eighth accumulator value.
+ The type of the accumulated result.
+ The source sequence
+ The seed value for the first accumulator.
+ The first accumulator.
+ The seed value for the second accumulator.
+ The second accumulator.
+ The seed value for the third accumulator.
+ The third accumulator.
+ The seed value for the fourth accumulator.
+ The fourth accumulator.
+ The seed value for the fifth accumulator.
+ The fifth accumulator.
+ The seed value for the sixth accumulator.
+ The sixth accumulator.
+ The seed value for the seventh accumulator.
+ The seventh accumulator.
+ The seed value for the eighth accumulator.
+ The eighth accumulator.
+
+ A function that projects a single result given the result of each
+ accumulator.
+ The value returned by .
+
+ This operator executes immediately.
+
+
+
+ AggregateRight extension.
+
+
+
+ Applies a right-associative accumulator function over a sequence.
+ This operator is the right-associative version of the
+ LINQ operator.
+
+ The type of the elements of source.
+ Source sequence.
+ A right-associative accumulator function to be invoked on each element.
+ The final accumulator value.
+
+ i.ToString()).AggregateRight((a, b) => string.Format("({0}/{1})", a, b));
+ ]]>
+ The result variable will contain "(1/(2/(3/(4/5))))".
+
+
+ This operator executes immediately.
+
+
+
+
+ Applies a right-associative accumulator function over a sequence.
+ The specified seed value is used as the initial accumulator value.
+ This operator is the right-associative version of the
+ LINQ operator.
The type of the elements of source.
The type of the accumulator value.
@@ -5761,7 +6955,12 @@
Type of elements in sequence.
Source sequence.
Count to assert.
- Function that returns the object to throw.
+
+ Function that receives a comparison (a negative integer if actual
+ count is less than and a positive integer
+ if actual count is greater than ) and
+ as arguments and which returns the
+ object to throw.
Returns the original sequence as long it is contains the
number of elements specified by .
@@ -6390,7 +7589,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -6403,6 +7603,9 @@
A sequence that contains elements of the two input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the two input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -6438,6 +7638,9 @@
A sequence that contains elements of the three input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
- If the three input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. An exception is thrown
+ if the input sequences are of different lengths.
Type of elements in first sequence
Type of elements in second sequence
@@ -6475,6 +7676,9 @@
A sequence that contains elements of the four input sequences,
combined by .
+
+ The input sequences are of different lengths.
+
-
- If the four input sequences are of different lengths then
- is thrown.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
@@ -6896,8 +8096,33 @@
and all nested sequences for which the predicate function
returned true.
- is null.
- is null.
+
+ is null.
+
+ is null.
+
+
+
+ Flattens a sequence containing arbitrarily-nested sequences. An
+ additional parameter specifies a function that projects an inner
+ sequence via a property of an object.
+
+ The sequence that will be flattened.
+
+ A function that receives each element of the sequence as an object
+ and projects an inner sequence to be flattened. If the function
+ returns null then the object argument is considered a leaf
+ of the flattening process.
+
+
+ A sequence that contains the elements of
+ and all nested sequences projected via the
+ function.
+
+
+ is null.
+
+ is null.
Fold extension.
@@ -7650,6 +8875,47 @@
This operator uses deferred execution and streams its
results.
+
+ IndexBy extension.
+
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
+
+
+ Applies a key-generating function to each element of a sequence and
+ returns a sequence that contains the elements of the original
+ sequence as well its key and index inside the group of its key.
+ An additional parameter specifies a comparer to use for testing the
+ equivalence of keys.
+
+ Type of the source sequence elements.
+ Type of the projected key.
+ Source sequence.
+
+ Function that projects the key given an element in the source sequence.
+
+ The equality comparer to use to determine whether or not keys are
+ equal. If null, the default equality comparer for
+ is used.
+
+ A sequence of elements paired with their index within the key-group.
+ The index is the key and the element is the value of the pair.
+
+
Insert extension.
@@ -8403,7 +9669,9 @@
The type of the elements of .
The sequence to pad.
The width/length below which to pad.
- Function to calculate padding.
+
+ Function to calculate padding given the index of the missing element.
+
Returns a sequence that is at least as wide/long as the width/length
specified by the parameter.
@@ -8442,11 +9710,11 @@
a + b);
+ var source = new[] { "a", "b", "c", "d" };
+ var result = source.Pairwise((a, b) => a + b);
]]>
The result variable, when iterated over, will yield
- 579 and 1245, in turn.
+ "ab", "bc" and "cd", in turn.
@@ -9170,7 +10438,7 @@
- Peforms a scan (inclusive prefix sum) on a sequence of elements.
+ Performs a scan (inclusive prefix sum) on a sequence of elements.
An inclusive prefix sum returns an equal-length sequence where the
@@ -9218,6 +10486,53 @@
Transformation operation
The scanned sequence
+
+ ScanBy extension.
+
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
+
+
+ Applies an accumulator function over sequence element keys,
+ returning the keys along with intermediate accumulator states. An
+ additional parameter specifies the comparer to use to compare keys.
+
+ Type of the elements of the source sequence.
+ The type of the key.
+ Type of the state.
+ The source sequence.
+
+ A function that returns the key given an element.
+
+ A function to determine the initial value for the accumulator that is
+ invoked once per key encountered.
+
+ An accumulator function invoked for each element.
+ The equality comparer to use to determine
+ whether or not keys are equal. If null, the default equality
+ comparer for is used.
+
+ A sequence of keys paired with intermediate accumulator states.
+
+
ScanRight extension.
@@ -10703,7 +12018,10 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -10726,19 +12044,16 @@
"2B", "3C", "0D" in turn.
-
- If the two input sequences are of different lengths then the result
- sequence will always be as long as the longer of the two input
- sequences. The default value of the shorter sequence element type
- is used for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -10764,20 +12079,16 @@
"2Bb", "3Cc", "0Dd", "0e" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding. This operator uses deferred execution and streams its
- results.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ will always be as long as the longest of input sequences where the
+ default value of each of the shorter sequence element types is used
+ for padding.
Type of elements in first sequence
Type of elements in second sequence
@@ -10806,13 +12117,7 @@
"2BbFalse", "3CcTrue", "0DdFalse", "0eTrue", "0\0False" in turn.
-
- If the input sequences are of different lengths then the result
- sequence will always be as long as the longest of input sequences.
- The default value of the each shorter sequence element type is used
- for padding.
-
- This operator uses deferred execution and streams its results.
+ This operator uses deferred execution and streams its results.
@@ -10820,8 +12125,9 @@
- Returns a projection of tuples, where each tuple contains the N-th element
- from each of the argument sequences.
+ Returns a projection of tuples, where each tuple contains the N-th
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -10843,9 +12149,10 @@
- If the two input sequences are of different lengths, the result
- sequence is terminated as soon as the shortest input sequence is
- exhausted.
+ If the input sequences are of different lengths, the result sequence
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
+
This operator uses deferred execution and streams its results.
@@ -10853,7 +12160,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -10880,7 +12188,8 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
@@ -10889,7 +12198,8 @@
Returns a projection of tuples, where each tuple contains the N-th
- element from each of the argument sequences.
+ element from each of the argument sequences. The resulting sequence
+ is as short as the shortest input sequence.
Type of elements in first sequence.
Type of elements in second sequence.
@@ -10919,12 +12229,70 @@
If the input sequences are of different lengths, the result sequence
- is terminated as soon as the shortest input sequence is exhausted.
+ is terminated as soon as the shortest input sequence is exhausted
+ and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
+
+ ToDataTable extension.
+
+
+
+ Converts a sequence to a object.
+
+ The type of the elements of .
+ The source.
+
+ A representing the source.
+
+ This operator uses immediate execution.
+
+
+
+ Appends elements in the sequence as rows of a given
+ object with a set of lambda expressions specifying which members (property
+ or field) of each element in the sequence will supply the column values.
+
+ The type of the elements of .
+ The source.
+ Expressions providing access to element members.
+
+ A representing the source.
+
+ This operator uses immediate execution.
+
+
+
+ Appends elements in the sequence as rows of a given object.
+
+ The type of the elements of .
+
+ The source.
+
+
+ A or subclass representing the source.
+
+ This operator uses immediate execution.
+
+
+
+ Appends elements in the sequence as rows of a given
+ object with a set of lambda expressions specifying which members (property
+ or field) of each element in the sequence will supply the column values.
+
+ The type of the elements of .
+ The type of the input and resulting object.
+ The source.
+ The type of object where to add rows
+ Expressions providing access to element members.
+
+ A or subclass representing the source.
+
+ This operator uses immediate execution.
+
Represents an list-like (indexable) data structure.
@@ -10993,6 +12361,28 @@
of an item to prepend, an item to append and the source.
+
+
+ Provides a set of static methods for writing in-memory queries over observable sequences.
+
+
+
+
+ Subscribes an element handler and a completion handler to an
+ observable sequence.
+
+ Type of elements in .
+ Observable sequence to subscribe to.
+
+ Action to invoke for each element in .
+
+ Action to invoke upon exceptional termination of the
+ .
+
+ Action to invoke upon graceful termination of .
+ The subscription, which when disposed, will unsubscribe
+ from .
+
The exception that is thrown for a sequence that fails a condition.
@@ -11019,5 +12409,13 @@
A message that describes the error.
The exception that is the cause of the current exception.
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+ The object that holds the serialized object data.
+ The contextual information about the source or destination.
+
diff --git a/morelinq.3.2.0/morelinq.3.2.0.nupkg b/morelinq.3.2.0/morelinq.3.2.0.nupkg
new file mode 100644
index 0000000..5759971
Binary files /dev/null and b/morelinq.3.2.0/morelinq.3.2.0.nupkg differ