2011-09-16 81 views

Trả lời

43

Nếu bạn có NET 4, use the string.IsNullOrWhiteSpace method:

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

Nếu bạn không có NET 4, và bạn có thể đứng để cắt dây của bạn, bạn có thể cắt nó trước, sau đó kiểm tra xem nó là trống.

Nếu không, bạn có thể nhìn vào thực hiện nó cho mình:

.Net 3.5 Implementation of String.IsNullOrWhitespace with Code Contracts

+0

Tôi tin rằng các phiên bản mới là 'string.IsNullOrEmpty (YourString)' – sylverfyre

+3

@sylverfyre: Không. Họ là hai phương pháp khác nhau và làm những việc khác nhau. Xem: ['IsNullOrEmpty'] (http://msdn.microsoft.com/en-us/library/system.string.isnullorempty.aspx) vs [' IsNullOrWhiteSpace'] (http://msdn.microsoft.com/vi -us/library/system.string.isnullorwhitespace.aspx) –

+5

Câu trả lời này không chính xác vì nó sẽ trả về true nếu chuỗi là null. – Simon

26

Nếu nó đã được biết đến với bạn rằng chuỗi không phải là null, và bạn chỉ muốn chắc chắn nó không phải là một chuỗi trống sử dụng như sau:

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

Nếu bạn cần phải kiểm tra null và từ chối nó, sử dụng null-điều kiện invocation và null-coalescing: 'value? .All (char.IsWhiteSpace) ?? false' - hoặc bạn có thể sử dụng ít đánh giá ngắn mạch ưa thích: 'value! = null && value.All (char.IsWhiteSpace)' – Palec

-1

Hãy thử sử dụng LINQ để giải quyết?

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

Điều này sẽ trả về true nếu chuỗi không phải là tất cả các khoảng trắng.

+0

Quá trò chuyện và không hoạt động hữu ích. Điều này luôn luôn lặp lại toàn bộ chuỗi, ngay cả sau khi nhìn thấy một char không gian. ['Enumerable.All '] (https://msdn.microsoft.com/en-us/library/bb548541 (v = vs.110) .aspx) sử dụng đánh giá ngắn mạch, xem [nguồn tham chiếu .NET] (https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,be4bfd025bd2724c). – Palec

Các vấn đề liên quan