Jak wykonać wymianę ciągu na tylko podsekcji łańcucha?
Chciałbym skuteczną metodę, która działałaby w ten sposób
EDIT: Przepraszam, że nie umieściłem tego, co próbowałem wcześniej. Zaktualizowałem teraz przykład.
// Method signature, Only replaces first instance or how many are specified in max
public int MyReplace(ref string source,string org, string replace, int start, int max)
{
int ret = 0;
int len = replace.Length;
int olen = org.Length;
for(int i = 0; i < max; i++)
{
// Find the next instance of the search string
int x = source.IndexOf(org, ret + olen);
if(x > ret)
ret = x;
else
break;
// Insert the replacement
source = source.Insert(x, replace);
// And remove the original
source = source.Remove(x + len, olen); // removes original string
}
return ret;
}
string source = "The cat can fly but only if he is the cat in the hat";
int i = MyReplace(ref source,"cat", "giraffe", 8, 1);
// Results in the string "The cat can fly but only if he is the giraffe in the hat"
// i contains the index of the first letter of "giraffe" in the new string
Jedynym powodem, dla którego pytam, jest to, że moje wdrożenie wyobrażałbym sobie, że zwolniłem z tysiącami zastąpień.