Something I find myself doing more and more is checking a string for empty (as in "" or null) and a conditional operator.
A current example:
s.SiteNumber.IsNullOrEmpty() ? "No Number" : s.SiteNumber;
This is just an extension method, it’s equivalent to:
string.IsNullOrEmpty(s.SiteNumber) ? "No Number" : s.SiteNumber;
Since it’s empty and not null, ?? won’t do the trick. A string.IsNullOrEmpty() version of ?? would be the perfect solution. I’m thinking there has to be a cleaner way of doing this (I hope!), but I’ve been at a loss to find it.
Does anyone know of a better way to do this, even if it’s only in .Net 4.0?
There isn’t a built-in way to do this. You could make your extension method return a string or null, however, which would allow the coalescing operator to work. This would be odd, however, and I personally prefer your current approach.
Since you’re already using an extension method, why not just make one that returns the value or a default: