2011-10-02 19 views
8

Jestem pewien, że coś tu przeoczyłem. Przy pewnym projekcie muszę sprawdzić, czy ciąg znaków jest pusty, czy pusty.Łatwiejszy sposób zapisu wartości pustej lub pustej?

Czy jest łatwiejszy sposób na zapisanie tego?

if(myString == "" || myString == null) 
{ 
    ... 
+0

Właściwie przeszukany. Czasami bardzo oczywiste rzeczy zostają poślizgnięte pod radarem. – Phil

+1

Pytanie nie zasługuje na -ve oznacza dodanie linku [String.IsNullOrEmpty] (http://msdn.microsoft.com/en-us/library/system.string.isnullorempty%28v=vs.110%29.aspx) –

Odpowiedz

26

Tak, istnieje metoda String.IsNullOrEmpty pomocnika za dokładnie to już:

if (String.IsNullOrEmpty(myString)) { 
    ... 
} 
+1

I na uwadze relate: http://stackoverflow.com/questions/2552350/string-isnullorempple-check-for-space/2552381#2552381 – xanatos

0

Jeśli jesteś na .NET 4, można użyć

if(string.IsNullOrWhiteSpace(myString)){ 

} 

else:

if(string.IsNullOrEmpty(myString)){ 

} 
+5

'IsNullOrWhiteSpace' sprawdza coś innego niż bycie równym' "", więc miałby inną semantykę niż fragment kodu w pytaniu. – Joey

5
if (string.IsNullOrEmpty(myString)) { 
    ... 
} 

Lub można skorzystać z dziwactwo w metod rozszerzenie, pozwalają to być zerowa:

static class Extensions { 
    public static bool IsEmpty(this string s) { 
     return string.IsNullOrEmpty(s); 
    } 
} 

który następnie pozwala napisać:

if (myString.IsEmpty()) { 
    ... 
} 

Chociaż pewnie powinien wybrać inny nazwa niż "pusty".

+0

Ładny przykład metod rozszerzenia! Dzięki! – Phil

+0

Dlaczego nie 'string.IsNullOrEmpty (s)' zamiast 's == null || s == string.Empty'? – Nawaz

+0

Masz oczywiście oczywiście :) –

-1

// jeśli łańcuch nie jest zdefiniowany jako null, to IsNullOrEmpty działa świetnie, ale jeśli łańcuch ma zdefiniowaną wartość null, to przycięcie spowoduje wyjątek.

if(string.IsNullOrEmpty(myString.Trim()){ 
... 
} 

// można użyć IsNullOrWhiteSpace który działa dobrze dla wielu białej przestrzeni w ciąg .i.e to prawdziwy powrót do wielokrotnego białej przestrzeni również

if(string.IsNullOrWhiteSpace (myString.Trim()){ 
    ... 
    } 
+1

"Trim" nie jest samodzielną funkcją, jest metodą instancji String. Prawidłowe użycie: 'myString.Trim()', ale to dmucha, gdy mystring jest zerowy. Użyj 'String.IsNullOrWhiteSpace()' –

+0

Zgadzam się z tobą, więc poprawiłem w powyższym kodzie. Dzięki @HansKesting – Dipitak

0

Aby uniknąć pustych kontrole można użyć ?? operator.

var result = value ?? ""; 

Często używam go jako osłony, aby uniknąć przesyłania danych, których nie chcę w metodach.

JoinStrings(value1 ?? "", value2 ?? "") 

Może być również używany w celu uniknięcia niechcianego formatowania.

string ToString() 
{ 
    return "[" + (value1 ?? 0.0) + ", " + (value2 ?? 0.0) + "]"; 
} 

Można to również wykorzystać w wyrażeniach if, nie jest to takie przyjemne, ale może być czasem przydatne.

if (value ?? "" != "") // Not the best example. 
{ 
} 
Powiązane problemy