wake-up-neo.com

Wie konvertiert man einen String in eine ganze Zahl in C #

Wie konvertiere ich eine Zeichenfolge in eine ganze Zahl in C #?

84
user282078

Wenn Sie sicher sind, dass es korrekt analysiert wird, verwenden Sie

int.Parse(string)

Wenn nicht, verwenden Sie

int i;
bool success = int.TryParse(string, out i);

Vorsicht! Im folgenden Fall wird i gleich 0 und nicht 10 nach der TryParse.

int i = 10;
bool failure = int.TryParse("asdf", out i);

Dies liegt daran, dass TryParse einen out -Parameter verwendet, nicht einen ref -Parameter.

134
Brandon
int myInt = System.Convert.ToInt32(myString);

Wie bereits erwähnt, können Sie auch int.Parse() und int.TryParse() verwenden.

Wenn Sie sicher sind, dass die string immer eine int ist:

int myInt = int.Parse(myString);

Wenn Sie prüfen möchten, ob string wirklich wirklich eine int ist:

int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value
if (isValid)
{
    int plusOne = myInt + 1;
}
22
devuxer
int a = int.Parse(myString);

oder besser noch, int.TryParse(string)

9
Neil N
string varString = "15";
int i = int.Parse(varString);

oder 

int varI;
string varString = "15";
int.TryParse(varString, out varI);

int.TryParse ist sicherer, da Sie eine Ausnahme erhalten, wenn Sie etwas anderes in varString eingeben (zum Beispiel "fsfdsfs"). Wenn Sie int.TryParse verwenden, wenn string nicht in int konvertiert werden kann, wird 0 zurückgegeben.

6
MadBoy

Wenn Sie sicher sind, dass Sie eine "echte" Nummer in Ihrer Zeichenfolge haben oder wenn Sie sich einer möglicherweise auftretenden Ausnahme bewusst sind, verwenden Sie diese Option.

string s="4";
int a=int.Parse(s);

Verwenden Sie für mehr 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;
}
5

Tun Sie etwas wie:

var result = Int32.Parse(str);
5
Tomas Vana
int i;
string whatever;

//Best since no exception raised
int.TryParse(whatever, out i);

//Better use try catch on this one
i = Convert.ToInt32(whatever);
3
madatanic

4 Techniken werden hier bewertet.

Der schnellste Weg stellte sich als der folgende heraus:

y = 0;
for (int i = 0; i < s.Length; i++)
       y = y * 10 + (s[i] - '0');

"s" ist Ihre Zeichenfolge, die Sie in ein int konvertieren möchten. Bei diesem Code wird davon ausgegangen, 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 für reine Geschwindigkeit.

Am Ende hat "y" Ihren int-Wert.

2

bool result = Int32.TryParse (someString, out someNumeric)

Diese Methode versucht, Ihren string someString in int someNumeric umzuwandeln und boolean result an Sie zurückzugeben. true bei erfolgreicher Konvertierung und false bei fehlgeschlagener Konvertierung. Beachten Sie, dass diese Methode keine Ausnahme auslöst, wenn die Konvertierung wie bei der Int32.Parse-Methode fehlgeschlagen ist. Stattdessen wird für someNumeric Null zurückgegeben.

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

Wie konvertiert man einen String in eine ganze Zahl in C #

1
jet_choong
int i;

string result = Something;

i = Convert.ToInt32(result);
0
deepu

Sie können entweder verwenden,

    int i = Convert.ToInt32(myString);

oder

    int i =int.Parse(myString);
0
Deadlock
class MyMath
{
    public dynamic Sum(dynamic x, dynamic y)
    {
        return (x+y);
    }
}

class Demo
{
    static void Main(string[] args)
    {
        MyMath d = new MyMath();
        Console.WriteLine(d.Sum(23.2, 32.2));
    }
}
0
Abdo