В основном у каждого поставщика услуг есть почтовый шлюз, которому необходимо будет послать электронное письмо. Необходимо будет знать поставщика услуг заранее так, чтобы Вы знали который адрес электронной почты отправить SMS-сообщение.
Быстрее - нет. Более эффективно - да, если вы будете использовать класс StringBuilder
. В вашей реализации каждая операция генерирует копию строки, которая при определенных обстоятельствах может снизить производительность. Строки являются неизменяемыми объектами, поэтому каждая операция просто возвращает измененную копию.
Если вы ожидаете, что этот метод будет активно вызываться для нескольких строк
значительной длины, может быть лучше " перенести "свою реализацию в класс StringBuilder
. С его помощью любые изменения выполняются непосредственно в этом экземпляре, поэтому вы избавляетесь от ненужных операций копирования.
public static class StringExtention
{
public static string clean(this string s)
{
StringBuilder sb = new StringBuilder (s);
sb.Replace("&", "and");
sb.Replace(",", "");
sb.Replace(" ", " ");
sb.Replace(" ", "-");
sb.Replace("'", "");
sb.Replace(".", "");
sb.Replace("eacute;", "é");
return sb.ToString().ToLower();
}
}
Maybe a little more readable?
public static class StringExtension {
private static Dictionary<string, string> _replacements = new Dictionary<string, string>();
static StringExtension() {
_replacements["&"] = "and";
_replacements[","] = "";
_replacements[" "] = " ";
// etc...
}
public static string clean(this string s) {
foreach (string to_replace in _replacements.Keys) {
s = s.Replace(to_replace, _replacements[to_replace]);
}
return s;
}
}
Also add New In Town's suggestion about StringBuilder...
это будет более эффективно:
public static class StringExtension
{
public static string clean(this string s)
{
return new StringBuilder(s)
.Replace("&", "and")
.Replace(",", "")
.Replace(" ", " ")
.Replace(" ", "-")
.Replace("'", "")
.Replace(".", "")
.Replace("eacute;", "é")
.ToString()
.ToLower();
}
}