23 lines
981 B
Plaintext
23 lines
981 B
Plaintext
Looking for a given substring starting from a specified offset can be achieved by such code: ``str.Substring(startIndex).IndexOf(char1)``. This works well, but it creates a new ``string`` for each call to the ``Substring`` method. When this is done in a loop, a lot of ``strings`` are created for nothing, which can lead to performance problems if ``str`` is large.
|
|
|
|
To avoid performance problems, ``string.Substring(startIndex)`` should not be chained with the following methods:
|
|
- ``IndexOf``
|
|
- ``IndexOfAny``
|
|
- ``LastIndexOf``
|
|
- ``LastIndexOfAny``
|
|
|
|
For each of these methods, another method with an additional parameter is available to specify an offset.
|
|
Using these methods gives the same result while avoiding the creation of additional ``String`` instances.
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
str.Substring(StartIndex).IndexOf(char1); // Noncompliant; a new string is going to be created by "Substring"
|
|
----
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
str.IndexOf(char1, startIndex);
|
|
----
|