Я ищу самый быстрый способ заменить несколько (~ 500) подстрок большой (~ 1mb) строки. Независимо от того, что я пробовал, кажется, что String.Replace - это самый быстрый способ сделать это.
Я просто обожаю самый быстрый способ. Не читаемость кода, ремонтопригодность и т.д. Мне не важно, нужно ли мне использовать небезопасный код или предварительно обработать исходную строку.
РЕДАКТИРОВАТЬ: После комментариев я добавил несколько деталей:
Каждая итерация заменяет ABC на строку некоторой другой строкой (разная для каждой итерации замены). Строка для замены будет ВСЕГДА быть одинаковой - ABC всегда будет ABC. Никогда не ABD. Поэтому, если есть 400.000
тысячи, замените итерации. Одна и та же строка - ABC - будет заменена какой-то другой (другой) строкой каждый раз.
Я могу контролировать, что такое ABC. Я могу сделать его супер-коротким или сверхдолгим, пока это не повлияет на результаты. Очевидно, что ABC не может быть приветствием, потому что приветствие будет существовать как слово в большинстве входных строк.
Пример ввода: ABCDABCABCDABCABCDABCABCDABCD
Пример замены строки: BC
Пример заменить на строки: AA, BB, CC, DD, EE (5 iterations)
Пример выходов:
AAADAAAAAADAAAAAADAAAAAADAAAD
ABBDABBABBDABBABBDABBABBDABBD
ACCDACCACCDACCACCDACCACCDACCD
ADDDADDADDDADDADDDADDADDDADDD
AEEDAEEAEEDAEEAEEDAEEAEEDAEED
Средний случай: Входная строка 100-200 кб с заменой итераций на 40 000. Наихудший случай: входная строка составляет 1-2 МБ с заменой итераций 400 000.
Я могу делать НИЧЕГО. Делайте это параллельно, делайте это небезопасно и т.д. Не имеет значения, как я это делаю. Важно то, что она должна быть такой же быстрой, как и она.
Спасибо