Я думаю, что вы страдаете от преждевременной оптимизации.Сначала напишите простейшую вещь и посмотрите, работает ли она для вас.Если вы не испытываете проблем с производительностью, то все готово.Не тратьте время на попытки сделать это быстрее, если вы не знаете, как это быстро, или если это является причиной вашей проблемы с производительностью.
Кстати, Условия использования Facebook, вся HTML-страницаэто включает в себя много Javascript, всего 164 килобайта.Это не особенно велико.
String.Replace должно работать достаточно хорошо, даже если вам нужно заменить несколько строк.То есть вы можете написать:
string result = source.Replace("{parent.name}", "am");
result = result.Replace("{parent.number}", "good");
// more replacements here
return result;
Это немного отработает сборщик мусора, но это не должно быть проблемой, если у вас действительно огромная страница или полный набор замен.
Потенциально вы можете сэкономить некоторую сборку мусора, преобразовав строку в StringBuilder и вызвав StringBuilder.Replace несколько раз.Честно говоря, я не знаю, окажет ли это какое-либо заметное влияние.Я не знаю, как реализован StringBuilder.Replace
.
Есть способ сделать это быстрее, написав код, который будет анализировать строку и выполнять все замены за один проход.Хотя кода много.Вы должны построить конечный автомат из нескольких строк поиска и пройти по тексту source
по одному символу за раз.Это выполнимо, но это достаточно сложная задача, которую вы, вероятно, не захотите делать, если простой метод не работает достаточно быстро.