Замена нескольких символов в строке, самый быстрый способ?
Я импортирую некоторое количество записей с несколькимиstring
поля от старой базы данных до новой базы данных. Это кажется очень медленным, и я подозреваю, что это потому, что я делаю это:
foreach (var oldObj in oldDB)
{
NewObject newObj = new NewObject();
newObj.Name = oldObj.Name.Trim().Replace('^', 'Č').Replace('@', 'Ž').Replace('[', 'Š')
.Replace(']', 'Ć').Replace('`', 'ž').Replace('}', 'ć')
.Replace('~', 'č').Replace('{', 'š').Replace('\\', 'Đ');
newObj.Surname = oldObj.Surname.Trim().Replace('^', 'Č').Replace('@', 'Ž').Replace('[', 'Š')
.Replace(']', 'Ć').Replace('`', 'ž').Replace('}', 'ć')
.Replace('~', 'č').Replace('{', 'š').Replace('\\', 'Đ');
newObj.Address = oldObj.Address.Trim().Replace('^', 'Č').Replace('@', 'Ž').Replace('[', 'Š')
.Replace(']', 'Ć').Replace('`', 'ž').Replace('}', 'ć')
.Replace('~', 'č').Replace('{', 'š').Replace('\\', 'Đ');
newObj.Note = oldObj.Note.Trim().Replace('^', 'Č').Replace('@', 'Ž').Replace('[', 'Š')
.Replace(']', 'Ć').Replace('`', 'ž').Replace('}', 'ć')
.Replace('~', 'č').Replace('{', 'š').Replace('\\', 'Đ');
/*
... some processing ...
*/
}
Теперь я прочитал несколько постов и статей в сети, где я видел много разных мыслей по этому поводу. Некоторые говорят, что было бы лучше, если бы я делал регулярные выражения сMatchEvaluator
некоторые говорят, что лучше оставить все как есть.
Хотя возможно, что мне было бы проще просто сделать контрольный пример для себя, я решил задать здесь вопрос, если кто-то еще задавался вопросом об этом же вопросе, или если кто-то знает об этом заранее.
Так какой же самый быстрый способ сделать это в C #?
EDIT
Я разместил тестВот, На первый взгляд кажется, что путь Ричарда может быть самым быстрым. Однако его способ, равно как и Марка, ни к чему не приведет из-за неправильной схемы регулярных выражений. После корректировки рисунка из
@"\^@\[\]`\}~\{\\"
в
@"\^|@|\[|\]|`|\}|~|\{|\\"
кажется, что старый способ с вызовами цепочки .Replace () самый быстрый