Стараясь не повторяться (быть СУХИМ) здесь, помоги мне.=)
У меня есть double , который представляет рейтинг / 5.
Возможные значения:
0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.
Я хочу преобразовать этов строку без десятичного знака.
Значения будут такими:
"0", "05", "1", "15", "2", "25", "3", "35", "4", "45", "5".
Почему я это делаю?Поскольку я пытаюсь динамически создать ссылку на основе значения:
string link = "http://somewhere.com/images/rating_{0}.gif";
return string.Format(link, "15");
Возможные значения обрабатываются / проверяются в другом месте, другими словами, я могу быть на 100% уверен, что значение всегда будет одним из этихя упомянул.
Есть идеи?Какой-то специальный формат, который я могу использовать в методе .ToString()
?Или я застрял с оператором un-DRY switch?Или я могу дерзко сделать decimal.ToString().Replace(".","")
?
РЕДАКТИРОВАТЬ:
Ого, спасибо за все ответы, ребята!=)
Большинство ответов верны, поэтому я оставлю это открытым на день или около того и выберу ответ с наибольшим количеством голосов.
В любом случае, я в итоге создал простой метод расширения:
public static string ToRatingImageLink(this decimal value)
{
string imageLinkFormat = "http://somewhere.com/images/rating_{0}.gif";
return string.Format(imageLinkFormat, value.ToString().Replace(".0", string.Empty).Replace(".", string.Empty);
}
Думаю, это был случай "KISS" и "DRY".В этом случае синтаксический сахар методов расширения оставил его СУХИМ, а фактическая однострочная реализация удовлетворяет KISS.