web-dev-qa-db-fra.com

Comment convertir une chaîne en entier en C #

Comment convertir une chaîne en un entier en C #?

84
user282078

Si vous êtes sûr que ça va analyser correctement, utilisez

int.Parse(string)

Si vous ne l'êtes pas, utilisez

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

Mise en garde! Dans le cas ci-dessous, i sera égal à 0 et non 10 après le TryParse.

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

En effet, TryParse utilise un paramètre out, et non un paramètre ref.

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

Comme plusieurs autres l’ont mentionné, vous pouvez également utiliser int.Parse() et int.TryParse().

Si vous êtes certain que la string sera toujours une int:

int myInt = int.Parse(myString);

Si vous souhaitez vérifier si string est vraiment un int d'abord:

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);

ou mieux encore, regardez dans int.TryParse(string)

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

ou 

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

int.TryParse est plus sûr car si vous mettez quelque chose d'autre dans varString (par exemple "fsfdsfs"), vous obtiendrez une exception. En utilisant int.TryParse lorsque la chaîne ne peut pas être convertie en int, elle retournera 0.

6
MadBoy

Si vous êtes sûr d'avoir un "vrai" nombre dans votre chaîne, ou si vous êtes à l'aise avec une éventuelle exception, utilisez ceci.

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

Pour plus de contrôle sur le processus, utilisez

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
Daniel Mošmondor

Faites quelque chose comme:

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 techniques sont référencés ici.

Le moyen le plus rapide s'est révélé être le suivant:

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

"s" est votre chaîne que vous voulez convertir en int. Ce code suppose que vous n'aurez aucune exception lors de la conversion. Donc, si vous savez que vos données de chaîne seront toujours une sorte de valeur int, le code ci-dessus est le meilleur moyen d’utiliser la vitesse pure.

A la fin, "y" aura votre valeur int.

2
Do What You Love

résultat bool = Int32.TryParse (someString, out someNumeric)

Cette méthode essaiera de convertir votre string someString en int someNumeric et de vous renvoyer boolean result. true si la conversion a réussi et false si la conversion a échoué. Notez que cette méthode ne lève pas d'exception si la conversion a échoué, contrairement à la méthode Int32.Parse. Au lieu de cela, elle renvoie zéro pour someNumeric.

Pour plus d'informations, vous pouvez lire ici:

https://msdn.Microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2 . .
Et 
Comment convertir une chaîne en entier en C #

1
jet_choong
int i;

string result = Something;

i = Convert.ToInt32(result);
0
deepu

Vous pouvez utiliser soit,

    int i = Convert.ToInt32(myString);

ou

    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