Чи є кращий спосіб зробити це ...
MyString.Trim().Replace("&", "and").Replace(",", "").Replace(" ", " ")
.Replace(" ", "-").Replace("'", "").Replace("/", "").ToLower();
Я розширив клас рядків, щоб звести його до одного завдання, але чи є швидший спосіб?
public static class StringExtension
{
public static string clean(this string s)
{
return s.Replace("&", "and").Replace(",", "").Replace(" ", " ")
.Replace(" ", "-").Replace("'", "").Replace(".", "")
.Replace("eacute;", "é").ToLower();
}
}
Просто задля розваги (і щоб зупинити аргументи в коментарях) я підготував суть порівняльного аналізу різних прикладів нижче.
Варіант регулярного виразу набирає жахливі результати; варіант словника з’являється найшвидше; затяжна версія заміни струнобудівника трохи швидша, ніж коротка рука.