Laden...

String in int konvertieren, wenn statt 0 ein anderer Text verwendet wird

Erstellt von Square vor 12 Jahren Letzter Beitrag vor 12 Jahren 894 Views
Thema geschlossen
S
Square Themenstarter:in
7 Beiträge seit 2011
vor 12 Jahren
String in int konvertieren, wenn statt 0 ein anderer Text verwendet wird

Hey 🙂
bevor jetzt das geflame losgeht:

            String Ergebniss = Convert.ToInt32(gesamt);

funktioniert nicht^^
ich lese in dem programm per foreach schleife mehrere werte aus und möchte diese später alle zusammenrechnen, das problem ist: ich muss diese Daten per RegEx auslesen, also einen String erstellen, da es nicht nur zahlen gibt, sondern bei 0 statt der 0 das wort "hat nicht" ausgelesen wird.
ich weiß die frage is ziemlich hohl und vermutlich kenne ich die Lösung selbst, stehe aber seit 2 Tagen aufm Schlauch... Gegooglet habe ich, sämtliche referenzen ebenfalls durchsucht...
Aber ich finde einfach nichts...
Also könnte jemand mir einen tipp geben wie ich den String in einen int wert (für das spätere zusammenzählen) und falls "hat nicht" ausgelesen wird das durch eine 0 ersetzt wird? oder einfach übersprungen wird, da 0 ja sowieso nicht zählt 😁

742 Beiträge seit 2005
vor 12 Jahren

z.B. in Kurzform mit Linq:


int sum = strings.Where(x => x != "hat nicht").Select(x => int.Parse(x)).Sum();

using System.Linq; nicht vergessen.

Das sind aber absolute Grundlagen.

S
Square Themenstarter:in
7 Beiträge seit 2011
vor 12 Jahren

Dankeschön 😃
Jaa^^
stehe noch ziemlich am anfang, das stimmt^^
werde mich dann mal intensiv mit Linq beschäftigen 😃
vielen dank nochmal 😃

//Edit:
okay... Also hab jetzt ewig rumexperimentiert und mir auch nochmal den Linq im Galileo OpenBook angesehen...
aber ich erhalte immer folgenden Fehler:> Fehlermeldung:

Fehler 1 "int" enthält keine Definition für "Where", und es konnte keine Erweiterungsmethode "Where" gefunden werden, die ein erstes Argument vom Typ "int" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)

Habe static int AnzahlGesamt; im class bereich definiert.... und jaa... using system.ling; is ebenfalls dabei 😉

F
240 Beiträge seit 2006
vor 12 Jahren

Du hast bereits einen int, musst es also nur noch parsen (mit int.Parse/TryParse).

742 Beiträge seit 2005
vor 12 Jahren

Da es so an Grundlagen fehlt, würde ich vll. doch eher mal ohne Linq arbeiten:

z.B.



int sum = 0;

foreach (string value in strings)
{
   if (value != "hat nicht")
   {
        int intValue = int.Parse(value);

        sum += intValue;
   }
}

S
Square Themenstarter:in
7 Beiträge seit 2011
vor 12 Jahren

ahhh 😄
jetz hab ich den Fehler^^
beim auslesen hängt an der nummer noch n x dran^^
also statt "12" hat er immer "12x" gehabt 😄
ich werd versuchen den wert zu splitten, vielen dank an euch beide 😃
und ich hab mir fett auf nen zettel neben dem monitor geschrieben: Debugen -> Ausgabe ansehen!
Danke nochmal 😃

Thema geschlossen