Performance improvements in SymbolNamesWithValueOption<T> #50570
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I would like to suggest some performance improvements in
SymbolNamesWithValueOption<TValue>class:Currently the nested
SymbolNamesWithValueOption<TValue>.NamePartstype is aclass, it seems that it could be astructinstead as it it's a type that just holds two values.Createmethod counts wildcard characters by callingCountmethod on astring. It can be replaced withIndexOfwhich removes a delegate (and maybe could even take advantage of vectorization, if runtime supports that). Also, the check if there's more than one wildcard can be removed because if a symbol name contains a wildcard then the method expects that it's the last character, otherwise it skips processing it.Fixed CA1847 in
Createmethod and removed suppression.