81 votes

C# testing pour voir si une chaîne est un entier ?

Je suis juste curieux de savoir s'il y a quelque chose intégré dans le langage C# ou le .NET Framework qui teste pour voir si quelque chose est un entier

if (x is an int)
   // Do something

Il me semble qu'il pourrait y en avoir, mais je ne suis qu'un étudiant en première année de programmation, donc je ne sais pas.

171voto

Brandon Points 35624

Utilisez la méthode int.TryParse.

string x = "42";
if(int.TryParse(x, out int value))
  // Do something

S'il parse avec succès, il renverra true, et le résultat out aura sa valeur en tant qu'entier.

17voto

rochal Points 4297

Si vous voulez juste vérifier le type de variable passée, vous pouvez probablement utiliser :

    var a = 2;
    if (a is int)
    {
        //is integer
    }
    //or:
    if (a.GetType() == typeof(int))
    {
        //is integer
    }

17voto

Wil P Points 1831

Je pense que je me souviens avoir regardé une comparaison de performance entre int.TryParse et int.Parse Regex et char.IsNumber et char.IsNumber était le plus rapide. Quoi qu'il en soit, quelle que soit la performance, voici une autre façon de le faire.

        bool isNumeric = true;
        foreach (char c in "12345")
        {
            if (!Char.IsNumber(c))
            {
                isNumeric = false;
                break;
            }
        }

16voto

Georg Points 1

Pour la solution Wil P (voir ci-dessus), vous pouvez également utiliser LINQ.

var x = "12345";
var isNumeric = !string.IsNullOrEmpty(x) && x.All(Char.IsDigit);

4voto

Sibghat Points 41

c'est simple... utilisez ce morceau de code

bool anyname = your_string_Name.All(char.IsDigit);

it will return true if your string have integer other wise false...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X