[英]Is there an easier way to find if a string is **not** null or empty?
[英]Easier way of writing null or empty?
我确定我在这里遗漏了一些东西。 对于某个项目,我需要检查字符串是否为空或 null。
有没有更简单的写法?
if(myString == "" || myString == null)
{
...
是的,已经有String.IsNullOrEmpty
辅助方法了:
if (String.IsNullOrEmpty(myString)) {
...
}
if (string.IsNullOrEmpty(myString)) {
...
}
或者你可以利用扩展方法中的一个怪癖,它们允许它为null:
static class Extensions {
public static bool IsEmpty(this string s) {
return string.IsNullOrEmpty(s);
}
}
然后让你写:
if (myString.IsEmpty()) {
...
}
虽然您可能应该选择另一个名称而不是“空”。
为了避免空检查你可以使用?? 运营商。
var result = value ?? "";
我经常使用它作为警卫,以避免发送我不希望在方法中的数据。
JoinStrings(value1 ?? "", value2 ?? "")
它还可用于避免不必要的格式化。
string ToString()
{
return "[" + (value1 ?? 0.0) + ", " + (value2 ?? 0.0) + "]";
}
这也可以在if语句中使用,它不是那么好但有时可以派上用场。
if (value ?? "" != "") // Not the best example.
{
}
在 c# 9 中,通过使用模式匹配,您可以执行以下操作
myString is not {Length: > 0}; // Equivalent to string.IsNullOrEmpty(myString)
C# 9 的模式匹配允许您编写:
myString is null or ""
如果您使用的是.NET 4,则可以使用
if(string.IsNullOrWhiteSpace(myString)){
}
其他:
if(string.IsNullOrEmpty(myString)){
}
//如果字符串未定义为null,则IsNullOrEmpty可以正常工作,但如果string定义为null,则trim将抛出异常。
if(string.IsNullOrEmpty(myString.Trim()){
...
}
//你可以使用IsNullOrWhiteSpace ,它可以很好地用于字符串中的多个空格.ie它也可以为多个空格返回true
if(string.IsNullOrWhiteSpace (myString.Trim()){
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.