如何让String.IsNullOrEmpty()
将只包含空格的字符串也视为空字符串呢?
例如,我想让以下代码返回true
,而不是通常的false
:
String.IsNullOrEmpty(" ");
有比这种方法更好的途径吗:
String.IsNullOrEmpty(" ".Trim());
(请注意,原问题询问的是通常会返回什么,因此引起了一些不太友善的评论,现已被替换为一个更合理的问题。)
如何让String.IsNullOrEmpty()
将只包含空格的字符串也视为空字符串呢?
例如,我想让以下代码返回true
,而不是通常的false
:
String.IsNullOrEmpty(" ");
有比这种方法更好的途径吗:
String.IsNullOrEmpty(" ".Trim());
(请注意,原问题询问的是通常会返回什么,因此引起了一些不太友善的评论,现已被替换为一个更合理的问题。)
.NET 4.0将引入方法String.IsNullOrWhiteSpace
。在此之前,如果你想以与空字符串相同的方式处理空格字符串,那么你需要使用Trim
。
对于不使用.NET 4.0的代码,可以实现一个帮助方法来检查null
或空或空白字符串,例如:
public static bool IsNullOrWhiteSpace(string value)
{
if (String.IsNullOrEmpty(value))
{
return true;
}
return String.IsNullOrEmpty(value.Trim());
}
String.IsNullOrEmpty
不会执行任何修剪操作,只会检查字符串是否为null引用或空字符串。
String
类上的静态方法,因此不会发生冲突。 - João AngeloString.IsNullOrEmpty(" ")
...返回 False
String foo = null;
String.IsNullOrEmpty( foo.Trim())
...因为foo
为空值而抛出异常。
String.IsNullOrEmpty( foo ) || foo.Trim() == String.Empty
...返回 true。
当然,你可以将其实现为扩展函数:
static class StringExtensions
{
public static bool IsNullOrWhiteSpace(this string value)
{
return (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()));
}
}