IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#] Quelle est la méthode la plus rapide pour vérifier un String vide ?


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut [C#] Quelle est la méthode la plus rapide pour vérifier un String vide ?
    Bonjour.
    Je voudrais tester si un string est égal à la chaine vide.

    Sous Java : "".equals( maChaine )

    Sous C#, quelle est la meilleur méthode ? ( ou plutot la plus rapide, puisque ce sera pour créer un fichier XML du coté serveur )

    Je crois qu'il y a une valeur string.Empty ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Le plus rapide : if ( toto.Length == 0 )
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  3. #3
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : novembre 2003
    Messages : 810
    Points : 1 671
    Points
    1 671
    Par défaut
    sinon tu peux faire if (str == string.Empty) ... ou encore if (str.CompareTo(string.Empty) == 0) ...

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    Si jai un object, que j'applique la fonction ToString() , est-ce que ca peut me renvoyer une valeur null ou bien lever une exception ?

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    object monObject = ... ;
     
    // a ce moment la, je ne sais ce qu'il y a dans monObject
     
    if( monObject != null )
    {
     string monObjectText = monObject.ToString();
     
     if( monObjectText.Length == 0 )
     {
      // traitement XML
     }
    }
    Y a-t-il une manière plus rapide de faire ?

  5. #5
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : novembre 2003
    Messages : 810
    Points : 1 671
    Points
    1 671
    Par défaut
    ce code la ne te renvoie pas un string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string monObjectText = monObject.ToString();
    il faut utiliser la classe Convert ou faire un cast :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string monObjectText = (string)monObject;
    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    C'est pas mal comme technique

    Edit: Arf oui, pas vu le object
    Bien vu freddy

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    Si ce n'est pas un string qu'il me renvoie, qu'est-ce qu'il me renvoie alors ?

    Au fait, cest bien la fonction Length qui est la plus rapide,
    (http://ianfnelson.com/blog/archive/2004/07/30/171.aspx)

    Merci pour vos réponses

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par thomas_strass
    Si ce n'est pas un string qu'il me renvoie, qu'est-ce qu'il me renvoie alors ?

    Il te renvoit le nom de l'instance de l'objet en cours

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    Je viens de voir sur un site ( http://blogs.msdn.com/csharpfaq/arch.../12/88418.aspx ) :

    Alias CLR type
    string System.String

    Donc si string est un alias pour System.String, c'est la même chose ... donc je ne comprends pas pourquoi vous faites la différence...

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    ok, je commence à comprendre ...

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Morpheus
    Citation Envoyé par thomas_strass
    Si ce n'est pas un string qu'il me renvoie, qu'est-ce qu'il me renvoie alors ?
    Il te renvoit le nom de l'instance de l'objet en cours :)
    Sauf si ToString a été redéfini, ce qui est censé être le cas pour toute classe convertissable en string. Pour celles qui ne le font pas, pendre le développeur :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    J'aime bien cette idée, de pendre le développeur

  13. #13
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Maniak
    Citation Envoyé par Morpheus
    Citation Envoyé par thomas_strass
    Si ce n'est pas un string qu'il me renvoie, qu'est-ce qu'il me renvoie alors ?
    Il te renvoit le nom de l'instance de l'objet en cours
    Sauf si ToString a été redéfini, ce qui est censé être le cas pour toute classe convertissable en string. Pour celles qui ne le font pas, pendre le développeur
    Tu veux dire quoi par:

    convertissable en string
    :

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Castable explicitement en string si tu préfères. Genre Int32 peut être converti 'logiquement' en string, donc il y a à la fois l'opérateur de cast et ToString. Même chose pour n'importe quel type qui a une conversion 'logique' en string. Dans ce cas-là, ToString est censé faire la même chose qu'un cast explicite, question de cohérence.

    Le renvoi du nom de la classe n'est que l'implémentation par défaut. C'est pas censé être un comportement standard sur lequel on peut se baser. Si on veut récupérer le nom du type d'un objet, c'est toujours par typeof ou GetType() qu'il faut passer. Pas par ToString qui est fait pour être redéfini :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  15. #15
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Ok, donc si je te comrepnd bien, si on doit faire un


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    blah t = new blah
     
    return t.ToString();
    si t.ToString() retourne "blah", il faut redéfinir la fonction ToString(): c'est bien cela que tu veux dire :


    A+

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Ben si ça a un sens oui. Si tu as une classe "Roue", ToString ne veut rien dire. Alors autant garder l'implémentation par défaut :)

    Mais si tu as une classe "Complex", tu redéfinis ToString pour renvoyer une version chaîne du nombre complexe correspondant. Ça a plus de sens que de renvoyer "Complex" :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  17. #17
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Ok, je comprend ce que tu veux dire

    Merci pour ces infos


    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel est la méthode la plus rapide ?
    Par Invité dans le forum Langage
    Réponses: 9
    Dernier message: 10/11/2014, 21h20
  2. [XL-2003] Méthode la plus rapide pour vérifier des conditions sur trois colonnes
    Par neiluj26 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/08/2009, 17h38
  3. Quelle est la multiplication la plus rapide? décimal ou binaire
    Par medkarim dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 14/10/2008, 00h27
  4. PGCD: quelle est la méthode la plus rapide
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 05/03/2008, 19h26
  5. [FB1.5]Quelle est la requete la plus rapide ?
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 10/12/2004, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo