@sslaitha, danke. Wenn Ihre Frage ausreichend beantwortet wurde, denken Sie bitte daran, sie als Antwort zu markieren.
Brandon
3
Beachten Sie nur, dass wenn Sie int i = 10 haben; und benutze int.TryParse ("asdf", out i); dass ich 0 nicht 10 enthalten werde !!! Dies liegt daran, dass TryParse eine out-Variable verwendet, keine ref.
CaffGeek
2
Die "Vorsicht" gilt für das dritte Beispiel - nicht für das zweite. Hatte mich ein bisschen verwirrt, da ich erwartet hatte, dass sich das "Dies" auf das obige Beispiel bezieht, nicht auf das folgende.
Peter_Mcc
22
int myInt =System.Convert.ToInt32(myString);
Wie mehrere andere bereits erwähnt haben, können Sie auch int.Parse()und verwenden int.TryParse().
Wenn Sie sicher sind, dass das stringimmer ein int:
int myInt =int.Parse(myString);
Wenn Sie überprüfen möchten, ob stringes sich wirklich um eine intPremiere handelt:
int myInt;bool isValid =int.TryParse(myString,out myInt);// the out keyword allows the method to essentially "return" a second valueif(isValid){int plusOne = myInt +1;}
string varString ="15";int i =int.Parse(varString);
oder
int varI;string varString ="15";int.TryParse(varString,out varI);
int.TryParseist sicherer, da Sie varStringeine Ausnahme erhalten würden, wenn Sie etwas anderes eingeben (zum Beispiel "fsfdsfs"). Wenn Sie verwenden, int.TryParsewenn der String nicht in int konvertiert werden kann, wird er zurückgegeben 0.
Wenn Sie sicher sind, dass Ihre Zeichenfolge eine "echte" Nummer enthält, oder wenn Sie mit einer möglichen Ausnahme vertraut sind, verwenden Sie diese Option.
string s="4";int a=int.Parse(s);
Verwenden Sie für eine bessere Kontrolle über den Prozess
string s="maybe 4";int a;if(int.TryParse(s,out a)){// it's int;}else{// it's no int, and there's no exception;}
y =0;for(int i =0; i < s.Length; i++)
y = y *10+(s[i]-'0');
"s" ist Ihre Zeichenfolge, die Sie in eine int konvertieren möchten. Dieser Code setzt voraus, dass Sie während der Konvertierung keine Ausnahmen haben. Wenn Sie also wissen, dass Ihre Zeichenfolgendaten immer eine Art int-Wert sind, ist der obige Code der beste Weg, um reine Geschwindigkeit zu erreichen.
bool result =Int32.TryParse(someString,out someNumeric)
Diese Methode wird versuchen , zu konvertieren someStringin someNumericund Rückkehr ein resultabhängt , wenn die Konvertierung erfolgreich ist, truewenn die Konvertierung erfolgreich ist und falsewenn die Konvertierung fehlgeschlagen. Beachten Sie, dass diese Methode keine Ausnahme auslöst, wenn die Konvertierung wie die Int32.ParseMethode fehlgeschlagen ist und stattdessen Null für zurückgibt someNumeric.
Antworten:
Wenn Sie sicher sind, dass es korrekt analysiert wird, verwenden Sie
Wenn nicht, verwenden Sie
Vorsicht! Im folgenden Fall ist
i
gleich 0, nicht 10 nach demTryParse
.Dies liegt daran, dass
TryParse
ein out- Parameter und kein ref- Parameter verwendet wird.quelle
Wie mehrere andere bereits erwähnt haben, können Sie auch
int.Parse()
und verwendenint.TryParse()
.Wenn Sie sicher sind, dass das
string
immer einint
:Wenn Sie überprüfen möchten, ob
string
es sich wirklich um eineint
Premiere handelt:quelle
oder noch besser, schauen Sie hinein
int.TryParse(string)
quelle
oder
int.TryParse
ist sicherer, da SievarString
eine Ausnahme erhalten würden, wenn Sie etwas anderes eingeben (zum Beispiel "fsfdsfs"). Wenn Sie verwenden,int.TryParse
wenn der String nicht in int konvertiert werden kann, wird er zurückgegeben0
.quelle
Wenn Sie sicher sind, dass Ihre Zeichenfolge eine "echte" Nummer enthält, oder wenn Sie mit einer möglichen Ausnahme vertraut sind, verwenden Sie diese Option.
Verwenden Sie für eine bessere Kontrolle über den Prozess
quelle
Mach so etwas wie:
quelle
quelle
Hier werden 4 Techniken verglichen.
Der schnellste Weg war der folgende:
"s" ist Ihre Zeichenfolge, die Sie in eine int konvertieren möchten. Dieser Code setzt voraus, dass Sie während der Konvertierung keine Ausnahmen haben. Wenn Sie also wissen, dass Ihre Zeichenfolgendaten immer eine Art int-Wert sind, ist der obige Code der beste Weg, um reine Geschwindigkeit zu erreichen.
Am Ende hat "y" Ihren int-Wert.
quelle
Diese Methode wird versuchen , zu konvertieren
someString
insomeNumeric
und Rückkehr einresult
abhängt , wenn die Konvertierung erfolgreich ist,true
wenn die Konvertierung erfolgreich ist undfalse
wenn die Konvertierung fehlgeschlagen. Beachten Sie, dass diese Methode keine Ausnahme auslöst, wenn die Konvertierung wie dieInt32.Parse
Methode fehlgeschlagen ist und stattdessen Null für zurückgibtsomeNumeric
.Weitere Informationen finden Sie hier:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
So konvertieren Sie Zeichenfolgen in Ganzzahl in C #
quelle
quelle
Sie können entweder verwenden,
oder
quelle
quelle