Более общее решение:
var emoticons = new Dictionary<string, string>{ {":)", "happy"}, {":(", "sad"} };
string result = ":) bla :(";
foreach (var emoticon in emoticons)
{
result = result.Replace(emoticon.Key, emoticon.Value);
}
Для любых дополнительных смайликов, которые нуждаются в замене, просто добавьте в словарь другую пару ключ-значение, например {":D", "laughing"}
.
КакВ качестве альтернативы циклу foreach также можно (хотя и не обязательно) использовать стандартный оператор запроса Aggregate
:
string result = emoticons.Aggregate(":) bla :(",
(text, emoticon) => text.Replace(emoticon.Key, emoticon.Value));