Open MihaZupan opened 1 year ago
Tagging subscribers to this area: @dotnet/area-system-memory See info in area-owners.md if you want to be subscribed.
Author: | MihaZupan |
---|---|
Assignees: | - |
Labels: | `area-System.Memory`, `code-analyzer`, `code-fixer` |
Milestone: | - |
We have an existing analyzer/fixer CA2249 that flags patterns like
string.IndexOf('a') >= 0
and suggests replacing the call withstring.Contains('a')
.We should consider expanding that to also flag patterns like
span.IndexOf('a') >= 0
=>span.Contains('a')
span.IndexOfAny('a', 'b') >= 0
=>span.ContainsAny('a', 'b')
span.IndexOfAnyExcept('a', 'b') >= 0
=>span.ContainsAnyExcept('a', 'b')
and their inverse variants
span.IndexOf('a') < 0
=>!span.Contains('a')
span.IndexOfAny('a', 'b') < 0
=>!span.ContainsAny('a', 'b')
span.IndexOfAnyExcept('a', 'b') < 0
=>!span.ContainsAnyExcept('a', 'b')
Unlike with strings, these shouldn't run into issues w.r.t. culture.
Suggested category: usage / performance Suggested severity: suggestion