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

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -