178 votes

Différence entre IsNullOrEmpty et IsNullOrWhiteSpace en C#

Quelles sont les différences entre ces commandes en C# ?

string text= "  ";
1-string.IsNullOrEmpty(text.Trim())

2-string.IsNullOrWhiteSpace(text)

4voto

CloudyMarble Points 16155

Si votre chaîne (dans votre cas, la variable text ) pourrait être nulle, cela ferait une grande différence :

1- string.IsNullOrEmpty(text.Trim()) --> EXCEPTION puisque vous appelez un mode de fonctionnement d'un objet nul.

2- string.IsNullOrWhiteSpace(text) Cela fonctionnerait bien puisque le problème de nullité est vérifié en interne.

Pour obtenir le même comportement en utilisant la première option, il faudrait d'abord vérifier que le fichier n'est pas nul, puis utiliser la méthode trim().

if ((text != null) && string.IsNullOrEmpty(text.Trim())) { ... }

3voto

vibs2006 Points 2150

String.IsNullOrWhiteSpace(text) devrait être utilisé dans la plupart des cas comme il inclut également une chaîne vide avec des espaces mais aucun autre texte. .

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            //Your code goes here
            var str = "";

            Console.WriteLine(string.IsNullOrWhiteSpace(str));              

        }
    }
}

Il retourne Véritable !

2voto

Italo Pacheco Points 11

[Test de performance] juste au cas où quelqu'un se poserait la question, dans un test de chronomètre comparant

if(nopass.Trim().Length > 0)

if (!string.IsNullOrWhiteSpace(nopass))



voici les résultats :

Trim-Length avec valeur vide = 15

Trim-Length avec une valeur non vide = 52


IsNullOrWhiteSpace avec une valeur vide = 11

IsNullOrWhiteSpace avec une valeur non vide = 12

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