2011-09-16 12 views

risposta

43

Se si dispone di .NET 4, use the string.IsNullOrWhiteSpace method:

if(string.IsNullOrWhiteSpace(myStringValue)) 
{ 
    // ... 
} 

Se non si dispone di .NET 4, e si può stare per tagliare le corde, si potrebbe tagliare per primo, quindi verificare se si tratta di vuoto.

In caso contrario, si potrebbe guardare in attuazione da soli:

.Net 3.5 Implementation of String.IsNullOrWhitespace with Code Contracts

+0

Credo nelle nuove versioni è 'stringa.IsNullOrEmpty (YourString)' – sylverfyre

+3

@sylverfyre: No. Sono due metodi diversi e fanno cose diverse. Vedi: ['IsNullOrEmpty'] (http://msdn.microsoft.com/en-us/library/system.string.isnullorempty.aspx) vs [' IsNullOrWhiteSpace'] (http://msdn.microsoft.com/en -us/library/system.string.isnullorwhitespace.aspx) –

+5

Questa risposta è errata poiché restituirà true se la stringa è nullo. – Simon

26

Se è già noto a voi che la stringa non è nulla, e si desidera solo per assicurarsi che non è una stringa vuota usare il seguente:

public static bool IsEmptyOrWhiteSpace(this string value) => 
    value.All(char.IsWhiteSpace); 
+3

Se è necessario verificare la presenza di null e rifiutarla, utilizzare l'invocazione condizionale nullo e null-coalescing: 'value? .All (char.IsWhiteSpace) ?? false' - oppure è possibile utilizzare una valutazione di cortocircuito meno elaborata: 'value! = null && value.All (char.IsWhiteSpace)' – Palec

-1

Provare a utilizzare LinQ per risolvere?

if(from c in yourString where c != ' ' select c).Count() != 0) 

Ciò restituirà true se la stringa non è tutti gli spazi.

+0

Troppo chiacchierone e malfunzionamento per essere utile. Questo fa sempre scorrere l'intera stringa, anche dopo aver visto un carattere non spaziale. ['Enumerable.All '] (https://msdn.microsoft.com/en-us/library/bb548541 (v = vs.110) .aspx) utilizza la valutazione di cortocircuito, vedere [Origine di riferimento .NET] (https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,be4bfd025bd2724c). – Palec

Problemi correlati