Skip to content

Different code improvements#456

Merged
alex-kulakov merged 24 commits into7.2from
7.2-bunch-of-imps
Mar 12, 2026
Merged

Different code improvements#456
alex-kulakov merged 24 commits into7.2from
7.2-bunch-of-imps

Conversation

@alex-kulakov
Copy link
Contributor

Adds LeftJoinEx extension as alternative for LeftJoin extension for being prepared for .Net 10
Some types and members marked Obsolete
Incoming parameter validation based on standard mechanisms instead of ArgumentValidator
Improved collections/enumerables usage, should be less memory used and performance increased

also null check (??) applied if possible
also addes some missing validation
- is/is not null applied
- some "result is never used" warnings eliminated
- summaries to public extension methods added
- other things
- less enumerations
- less collections created
repeat enumerator is more efficient because it takes into account number of repeats
as actual count of items in produced sequence
There are three dotnet alternatives which work better - Repeat, Append and
Prepend, which cover all the possible scenarios and track actual number of items in
result sequence
Buffer collection on stack that acts like usage map of indexes also serves as orderer.
More memory efficient solution and faster approach for at least portion of queries
# Conflicts:
#	ChangeLog/7.2.1-dev.txt
#	Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchTest.cs
@alex-kulakov alex-kulakov merged commit d392ae9 into 7.2 Mar 12, 2026
72 of 74 checks passed
@alex-kulakov alex-kulakov deleted the 7.2-bunch-of-imps branch March 12, 2026 13:30
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.

1 participant