Laden...

String entsprechend eines Counters zusammensetzen?

Erstellt von math55 vor 14 Jahren Letzter Beitrag vor 14 Jahren 759 Views
math55 Themenstarter:in
314 Beiträge seit 2007
vor 14 Jahren
String entsprechend eines Counters zusammensetzen?

Hallo, ich habe 2 Counter, die von 1-x zählen. Jetzt möchte ich entsprechend diese Counter einen String zusammenbauen, mittels StringBuilder.

Als Beispiel kommt dann z.B. sowas raus:

Es wurden 8 Datensätze erstellt und 1 Datensätze aktualisiert.

Wie man sieht, stimmt da die Grammatik nicht ganz, ich möchte haben:

Es wurden 8 Datensätze erstellt und 1 Datensatz aktualisiert.

Wenn es also einer der beiden oder beide Counter auf 1 stehen, soll "Datensatz" erscheinen. Jetzt könnte ich das mit if Abfragen machen, aber gibt es eventuell einen eleganteren Weg dies zu bewerkstelligen? Das ist mein Code, wie ich die Zeile erstelle:


stringBuilder.Append("Es wurden " + counter1 + " Datensätze neu erstellt und " + counter2 + " Datensätze aktualisiert.");

Danke 😃

F
10.010 Beiträge seit 2004
vor 14 Jahren

Schon mal in die Hilfe zu StringBuilder geschaut?
Der Text zu AppendFormat hört sich doch gut an,oder?

[Hinweis] Bitte schau in die SDK-/MSDN-Doku

1.361 Beiträge seit 2007
vor 14 Jahren

Hi,

Anstatt den ifs könnte man auch die verkürzte a?b:c Notation nutzen.
Alles dann in einem String.Format machts auch relativ übersichtlicht:


String.Format("Es wurden {0} {1} erstellt und {2} {3} aktualisiert", 
counter1, (counter1>1)?"Datensätze":"Datensatz",
counter2, (counter2>1)?"Datensätze":"Datensatz")

beste Grüße
zommi

//Edit: Auf das "wurde(n)" müsste natürlich auch noch geachtet werden.

math55 Themenstarter:in
314 Beiträge seit 2007
vor 14 Jahren

@zommi

So habe ichs gemacht 😃. DANKE!

U
1.688 Beiträge seit 2007
vor 14 Jahren

Hallo,

besser geeignet ist i. allg. die Prüfung counter==1 - dann funktioniert's nämlich auch mit 0.