String.IsNullOrEmpty() Проверить пространство
Что необходимо для того, чтобы сделать строки String.IsNullOrEmpty()
пустыми строк пустыми?
Eg. Я хочу, чтобы следующее возвращалось true
вместо обычного false
:
String.IsNullOrEmpty(" ");
Есть ли лучший подход, чем:
String.IsNullOrEmpty(" ".Trim());
(Обратите внимание, что исходный вопрос задал вопрос о том, что, как правило, возвращение было бы результатом несимпатичных комментариев, это было заменено более разумным вопросом).
Ответы
Ответ 1
.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
не выполнит никакой обрезки и просто проверит, является ли строка нулевой ссылкой или пустой строкой.
Ответ 2
String.IsNullOrEmpty(" ")
... Возвращает False
String foo = null;
String.IsNullOrEmpty( foo.Trim())
... Выдает исключение, поскольку foo
имеет значение Null.
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()));
}
}