c# - Show number of stars instead of the number -
i making site people can make reviews of movies , when make review need put rating movie, in number of 1 5.
but when print out on page want print out stars insted of number 3 exemple.
for got code:
stringbuilder movielistsb = new stringbuilder(); foreach (var moviereview in movielistsb) { filmanmeldelserlistesb.appendformat( "<div id='moviereview'><artitcle><h3>{0}</h3>" + "<table><tr><td>id:</td><td>{1}</td></tr>" + "<tr><td>anmeldelse:</td><td>{2}</td></tr>" + "<tr><td>rating:</td><td>{3}</td></tr></table></article></div>", (string)moviereview.element("title"), (string)moviereview.element("id"), (string)moviereview.element("review"), (string)moviereview.element("rating") );
and (string)moviereview.element("rating") want print out exempel 3 stars when user has given movie rating of 3.
i tried run loop, not figur out how work. , i've tried google solution, anyhow can't work.
any ideas?
edit: got this:
string star = @"<img src=""../images/star.png""/>"; if (moviereviewlist.count() > 0) { stringbuilder moviereviewlistsb = new stringbuilder(); foreach (var moviereview in moviereviewlist) { filmanmeldelserlistesb.appendformat( "<div id='moviereview'><artitcle><h3>{0}</h3>" + "<table><tr><td>id:</td><td>{1}</td></tr>" + "<tr><td>review:</td><td>{2}</td></tr>" + "<tr><td>rating:</td><td>{3}</td></tr></table></article></div>", (string)moviereview.element("tittel"), (string)moviereview.element("id"), (string)moviereview.element("anmeldelse"), star.repeatstring((int)moviereview.element("rating")) );
and
public static class stringextensions { public static string repeatstring(this string input, int count) { if (!string.isnullorempty(input)) { return string.empty; } stringbuilder builder = new stringbuilder(input.length * count); for(int = 0; < count; ++i) { builder.append(input); } return builder.tostring(); } }
i had parse `(int)filmanmeldelse.element("rating")' int. somehow can't image on site. blank , have tried different ways, not value site.
try this:
stringbuilder movielistsb = new stringbuilder(); foreach (var moviereview in movielistsb) { filmanmeldelserlistesb.appendformat( "<div id='moviereview'><artitcle><h3>{0}</h3>" + "<table><tr><td>id:</td><td>{1}</td></tr>" + "<tr><td>anmeldelse:</td><td>{2}</td></tr>" + "<tr><td>rating:</td><td>{3}</td></tr></table></article></div>", (string)moviereview.element("title"), (string)moviereview.element("id"), (string)moviereview.element("review"), new string('*', moviereview.element("rating")) );
this works, because string
has constructor takes character repeat, , number of times repeat it.
so code:
new string('x', 5);
would result in string "xxxxx"
(five x's in row)
edit poster asks if similar can used insert image-links.
reply: no. string method repeats a single character, not block of text.
if want repeat block of text, you'll want like:
string starimage = @"<img src=""starimage.jpg""/>"; filmanmeldelserlistesb.appendformat( "<div id='moviereview'><artitcle><h3>{0}</h3>" + "<table><tr><td>id:</td><td>{1}</td></tr>" + "<tr><td>anmeldelse:</td><td>{2}</td></tr>" + "<tr><td>rating:</td><td>{3}</td></tr></table></article></div>", (string)moviereview.element("title"), (string)moviereview.element("id"), (string)moviereview.element("review"), starimage.repeatstring(moviereview.element("rating")) );
but you'll have write own repeatstring
method.
guide doing can found on this question
edit #2
writing extension method not hard.
put class somewhere in project's namespace.
public static class stringextensions { public static string repeatstring(this string input, int count) { if (string.isnullorempty(input)) { return string.empty; } stringbuilder builder = new stringbuilder(input.length * count); for(int = 0; < count; ++i) { builder.append(input); } return builder.tostring(); } }
geesh... can't debug, can you?
you have ! in code:
public static string repeatstring(this string input, int count) { if (!string.isnullorempty(input)) // <-- ! { return string.empty; }
its pretty simple statement!
"if string null or empty, return empty string"
have backwards, says:
"if string has text in it, return empty string".
makes no sense.
Comments
Post a Comment