开发者

Easier way of writing null or empty?

开发者_Go百科I'm sure I've missed something here. With a certain project I need to check if a string is empty or null.

Is there an easier way of writing this?

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


Yes, there's the String.IsNullOrEmpty helper method for exactly this already:

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


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

Or you could take advantage of a quirk in extension methods, they allow this to be null:

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

which then lets you write:

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

Although you probably should pick another name than 'empty'.


If you are on .NET 4, you can use

if(string.IsNullOrWhiteSpace(myString)){

}

else:

if(string.IsNullOrEmpty(myString)){

}


To avoid null checks you can use ?? operator.

var result = value ?? "";

I often use it as guards to avoid sending in data that I don't want in methods.

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

It can also be used to avoid unwanted formatting.

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

This can also be used in if statements, it's not so nice but can be handy sometimes.

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


In c# 9 by using pattern matching you could do the following

myString is not {Length: > 0}; // Equivalent to string.IsNullOrEmpty(myString)


C# 9's pattern matching allows you to write:

myString is null or ""


// if the string is not defined to null then IsNullOrEmpty it works great but if string is defined null then trim will throw exception.

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

//you can use IsNullOrWhiteSpace which work well for multiple white space in string .i.e it return true for multiple white space also

 if(string.IsNullOrWhiteSpace (myString.Trim()){
     ...
    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜