2011-09-16 21 views

cevap

43

.NET 4, use the string.IsNullOrWhiteSpace method varsa: .NET 4 yoksa ve sizin dizeleri kırpmak için katlanabilirsen

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

, bunun olup olmadığını kontrol sonra, önce onu Döşeme olabilir boş. Zaten dize boş olmadığını size bilinen durumunda

.Net 3.5 Implementation of String.IsNullOrWhitespace with Code Contracts

+0

Ben 'string.IsNullOrEmpty (YourString) var yeni sürümleri iman' – sylverfyre

+3

@sylverfyre: Hayır. İki farklı yöntem ve farklı şeyler yapıyorlar. Bakınız: ['IsNullOrEmpty'] (http://msdn.microsoft.com/en-us/library/system.string.isnullorempty.aspx) vs [' IsNullOrWhiteSpace'] (http://msdn.microsoft.com/tr -us/library/system.string.isnullorwhitespace.aspx) –

+5

Bu yanıt, dize boşsa true olarak döneceği için yanlış. – Simon

26

ve sadece bir boş dize kullanmayın emin olmak istiyorum:

Aksi halde, bunu kendiniz uygulamak içine görünebilir izleyen:

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

Null olup olmadığını kontrol etmeniz ve reddetmeniz gerekirse, null-koşullu çağırma ve null-coalescing: 'value? .All (char.IsWhiteSpace) ?? false' - veya daha az süslü kısa devre değerlendirmesini kullanabilirsiniz: 'value! = null && value.All (char.IsWhiteSpace)' – Palec

-1

Çözmek için LinQ kullanmayı deneyin?

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

Dize tüm boşluklar değilse, bu doğru olarak döndürür.

+0

Kullanışlı olmak için çok konuşkan ve kötü performans. Bu, her zaman, boşluk olmayan bir char gördükten sonra bile, tüm dizeyi yineler. ['Enumerable.All '] (https://msdn.microsoft.com/en-us/library/bb548541 (v = vs.110) .aspx) kısa devre değerlendirmesini kullanır, bkz. [.NET referans kaynağı] (https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,be4bfd025bd2724c). – Palec