I'm sure I've missed something here. With a certain project I need to check if a string is null or empty.
Is there an easier way of writing this?
if (myString == null || myString == "")
{
...
I'm sure I've missed something here. With a certain project I need to check if a string is null or empty.
Is there an easier way of writing this?
if (myString == null || myString == "")
{
...
Yes, there's the String.IsNullOrEmpty
helper method for exactly this already:
if (String.IsNullOrEmpty(myString)) {
...
}
string/String
, NOT trying to use the function via the object! Eg, String foo;
will not allow you to do foo.IsNullOrEmpty();
; you need to use it like String.IsNullOrEmpty(foo);
This is kind of annoying when coming from other languages that have built in null/0-length-checks for their string objects, since you can't safely do something like, if(foo.Length == 0)
because that can trigger an exception. –
Cursorial if (foo?.Length ?? 0 == 0)
, but in general, calling an instance method requires a non-null
reference. You can fake this with extension methods that don't check their argument, but I think that's frowned upon, as extension methods should behave as if they were instance methods. –
Pancratium 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'.
string.IsNullOrEmpty(s)
instead of s == null || s == string.Empty
? –
Rental If you are on .NET 4, you can use
if(string.IsNullOrWhiteSpace(myString)){
}
else:
if(string.IsNullOrEmpty(myString)){
}
IsNullOrWhiteSpace
checks for something else than being equal to ""
so it'd have different semantics than the code snippet in the question. –
Pancratium 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.
{
}
??
can be used to avoid null
check but not for ""
. "" ?? anything"
still yeilds to ""
–
Aluminum In c# 9 by using pattern matching you could do the following
myString is not {Length: > 0}; // Equivalent to string.IsNullOrEmpty(myString)
if(!operationFailed)
- negative flavored / if(operationSucceeded)
- positive flavor). You have to stop and think about what it actually means/what the author intended so it reduces code readability/glanceability/self-documentation. IsNullOrEmpty
does a really good job of explaining what it does. –
Bamboozle 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()){
...
}
myString.Trim()
, but that blows up when mystring is null. Use String.IsNullOrWhiteSpace()
–
Algometer © 2022 - 2024 — McMap. All rights reserved.