Comment convertir chaîne en entier en C#

comment convertir une chaîne en entier en C#?

84
demandé sur Raktim Biswas 2010-02-26 22:57:19

12 réponses

si vous êtes sûr qu'il va analyser correctement, utilisez

int.Parse(string)

si vous ne l'êtes pas, utilisez

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

attention! dans le cas ci-dessous, i sera égal à 0, pas 10 après le TryParse .

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

c'est parce que TryParse utilise un paramètre out , pas un paramètre ref .

131
répondu Brandon 2015-04-29 07:51:59
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 le string sera toujours un int :

int myInt = int.Parse(myString);

si vous souhaitez vérifier si string est vraiment un int premier:

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;
}
21
répondu devuxer 2010-02-26 20:04:50
int a = int.Parse(myString);

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

9
répondu Neil N 2016-08-15 22:00:23
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 "fsfdsf") vous obtiendriez une exception. En utilisant int.TryParse quand la chaîne ne peut pas être convertie en int il retournera 0 .

6
répondu MadBoy 2010-02-26 20:01:04

si vous êtes sûr d'avoir un nombre" réel " dans votre chaîne de caractères, ou si vous êtes à l'aise avec toute exception qui pourrait survenir, 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
répondu Daniel Mošmondor 2010-02-26 19:58:59

faire quelque chose comme:

var result = Int32.Parse(str);
5
répondu Tomas Vana 2012-03-06 15:13:05
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
répondu madatanic 2010-02-26 20:00:32

4 techniques sont référencées ici.

la voie la plus rapide s'est avérée être la suivante:

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 à un int. Ce code suppose que vous n'aurez pas d'exceptions pendant 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 la meilleure façon d'aller pour la vitesse pure.

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

1
répondu Do What You Love 2014-11-02 13:01:08

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

cette méthode essaiera de convertir votre string someString en int someNumeric , et vous retournera boolean result . true si la conversion réussit et false si la conversion échoue. Prenez note que cette méthode ne lancera pas d'exception si la conversion a échoué comme la méthode Int32.Parse l'a fait et retourne plutôt zéro pour someNumeric .

Pour plus d'informations, vous peut lire ici:

https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

&

comment convertir chaîne en entier en C#

1
répondu C JC 2017-05-23 11:46:50
int i;

string result = Something;

i = Convert.ToInt32(result);
0
répondu deepu 2010-05-29 07:18:15

vous pouvez utiliser l'un ou l'autre,

    int i = Convert.ToInt32(myString);

ou

    int i =int.Parse(myString);
0
répondu Deadlock 2015-09-07 09:43:40
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
répondu Abdo 2017-02-27 07:07:16