string replace performance c#