Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Except and intersect variations (v3) #169

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

JamesFaix
Copy link

This branch provides several variations of the Except and Intersect operators.
It provides a solution to issues #63 and #124, and can be built upon to resolve #125.

Revised implementation and docs for ExceptBy method group.  Added
ExceptKeys method group, which shares implementation with ExceptBy.
Added unit tests for ExceptKeys.
Added IntersectBy and IntersectKeys method groups, which share the same
implementation.  Added unit test for both method groups.
Added ExceptAll, ExceptAllBy, and ExceptAllKeys method groups, which
share the same implementation.  Added unit tests for each ExceptAllBy
and ExceptAllKeys.
Added IntersectAll, IntersectAllBy, and IntersectAllKeys method groups,
which share the same implementation.  Added unit tests for
IntersectAllBy and IntersectAllKeys.
Switched from `foreach` block to `Where` expressions for cleaner
implementation code.
…ations

All variations of `Except` and `Intersect` are ultimately a special case
of the private method in SetFilter.cs.  I ran some speed tests between
`SetFilterImpl` the existing implementations of these methods, and it
appears to be slightly faster, possibly due to some optimization in
`Enumerable.Where`.
Split each method group into its own file, and nested them under
SetFilter.cs which contains the common implementation and is nested
under MoreEnumerable.cs.
@jasoncastellano
Copy link

Has there been any movement on getting this PR published? I keep coming back to wishing I had access to these variants.

@JamesFaix
Copy link
Author

@eliekstein Do you have time to review the merge conflicts?

@eliekstein
Copy link

@JamesFaix I Could, do you want me to add as a collaborator to your fork? or should i do my own fork?

@eliekstein
Copy link

I've opened another PR #257 which fixes the conflicts and passes all the tests, once that's merged this one could be closed.

atifaziz added a commit to atifaziz/MoreLINQ that referenced this pull request Mar 23, 2018
This puts the copyright notice extenral to main project file and
friendlier to eyes and version control management (fewer chances of
merge conflicts). It also takes care of an annoying problem where
Visual Studio would re-encoding the `&morelinq#169;` to the copyright
symbol whenever the project file would be opened in the IDE and
which would show up as artificial changes ready for commit to the
version control repository.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unique / Duplicate operators
3 participants