De quelle manière est vraiment le moyen le plus rapide de rechercher une chaîne vide et il y a un cas spécifique dans lequel vous avez besoin de tout spécifique.
1. String.IsNullOrEmpty() 2. str == null 3. str == null || str == String.Empty 4. str == null || str == "" 5. str == null || str.length == 0
9 Réponses :
Vous souciez-vous de WhitSpace aussi? p>
Si WhitSpace est valide, utilisez voir http://msdn.microsoft.com/fr -us / bibliothèque / system.string.isnullorwhitepace.aspx p> string.isnullorempty code>, sinon utilisez string.isnullorwhitepace code> (in .NET 4.0 ou supérieur). Ce dernier est équivalent à, mais plus performant que, string.isnullorempty (valeur) || valeur.trim (). longueur == 0; code> p>
J'utilise personnellement toujours En outre, vous pouvez parfois être pressé et mettre accidentellement le string.isnullorempty () code>. Je ne pense pas vraiment qu'ils font quelque chose de spécial autre que de vérifier s'il est null code> ou vide, il ne devrait donc pas être plus lent qu'un chèque écrit à la main. P>
NULL code> Vérifiez à la fin, obtenez une mauvaise surprise. :) p>
Utiliser l'option 1. p>
Si vous souhaitez spécifiquement vérifier Ceci est un exemple de manuel de Prématuré Optimisation ; Par tous les moyens, écrivez code efficace em>, mais ne gaspillez pas le temps de développement sur celui-ci sans aucun gain justifiable de la performance. N'oubliez pas que votre temps comme un développeur est généralement Quoth Donald Knuth: P>
Nous devrions oublier de petites gains d'efficacité, disons environ 97% du temps: l'optimisation prématurée est la racine de tout mal. P>
blockQuote>
Si ce niveau de micro-optimisation est véritablement nécessaire à votre application, vous ne devez probablement pas utiliser .NET. P> null code> ou des chaînes vides, il n'y a aucune raison d'utiliser autre chose que string.isnullorempty code>. C'est la façon canonique de le faire dans .NET, et toutes les différences de performance seront presque certainement négligeables. P>
La différence de vitesse sera imperceptible. p>
La bonne façon de le faire est de 1, car il est le plus sûr et le mieux lisible. P>
Avez-vous vraiment un scénario d'affaire Edge où sa chute courte alors s'il vous plaît ajouter la même chose à la question qui le rendrait plus pertinent. P> string.isnullorempty () code> est très lisible et fonctionne / fonctionne comme prévu, serait heureux de s'en tenir à cela. P>
Utilisez
String.IsNullOrEmpty()
a trouvé ce site web avec des statistiques sur les différentes méthodes: http://www.dotnetperls.com/empty -tring p>
Son meilleur moyen et recommandé d'utiliser string.isnullorempty A> Pour vérifier les cordes nulles ou vides les plus rapidement. Parce que sa méthode intégrée dans la chaîne. P>
Dans vos échantillons, la solution 2 est la plus rapide. Mais c'est une solution différente des autres, car elle ne vérifie pas si la chaîne est vide. p>
Sinon, étant donné que vous souhaitez vérifier si une chaîne est null ou vide, la solution 5 est la plus rapide. String.isnullorempty () fait exactement la même chose que la solution 5 mais ajoute un appel de fonction (s'il n'est pas inlisé au moment de l'exécution). Néanmoins, je recommanderais la première solution: P>
1 / la pénalité de performance est négligeable p>
2 / Il est plus facile de lire p>
3 / C'est une méthode intégrée, c'est donc la preuve future p>
Je dois descendre cette réponse car la valeur par défaut d'une variable de chaîne est une chaîne vide non une chaîne nulle. Bien que tout ce que vous dites sur string.isnullempty b> est correct.
Je ne comprends pas ton point. Où puis-je parler de la valeur par défaut d'une chaîne?
J'ai fait ce point. Ce qui est négatif à votre déclaration que la solution 2 est la plus rapide, car elle ne semble pas vraiment faire ce que l'auteur veut réellement tester pour, car il a des utilisations limitées.
C'est pourquoi j'ai précisé "mais c'est une solution différente des autres, car elle ne vérifie pas si la chaîne est vide."
Le 1er est la bonne façon. Parce que c'est intégré dans une corde.
'str' n'est pas un bon nom de variable
Dans la plupart de ces exemples, il n'y a pas de différence. Par exemple, des tests pour voir si la longueur est 0 vérifie pour voir si sa chaîne vide. Dans un exemple, vérifiant simplement pour voir si son NULL est une sorte de stupide, car la valeur par défaut d'une chaîne est une chaîne vide, pas une chaîne NULL. Nous parlons de différend de performance que vous ne commencerez même pas à mesurer car ils sont si négligeables. Arrêtez d'essayer d'optimiser les tâches triviales.
Il est peu probable que cela fasse une différence. Meilleure souci de
str == "" code>.@Ramhound Qu'est-ce qui vous fait penser que la valeur par défaut pour
chaîne code> est une chaîne vide?chaîne code> est un type de référence, sa valeur par défaut est NULL.str code> n'est pas un bon nom de variable.s code> est tout simplement bien.