Frage String.IsNullOrEmpty () Prüfe auf Platz


Was muss gemacht werden? String.IsNullOrEmpty() Whitespace-Strings als leer zählen?

Z.B. Ich möchte Folgendes zurückgeben true anstelle des Üblichen false:

String.IsNullOrEmpty(" ");

Gibt es einen besseren Ansatz als:

 String.IsNullOrEmpty(" ".Trim());

(Beachten Sie, dass bei der ursprünglichen Frage gefragt wurde, was normalerweise die Rückkehr wäre, daher die unsympathischen Kommentare, dies wurde durch eine vernünftigere Frage ersetzt).


18
2018-03-31 11:14


Ursprung


Antworten:


.NET 4.0 wird die Methode einführen String.IsNullOrWhiteSpace. Bis dahin müssen Sie verwenden Trim Wenn Sie mit Leerraumzeichenfolgen genauso umgehen wollen wie mit leeren Zeichenfolgen.

Für Code, der .NET 4.0 nicht verwendet, eine Hilfsmethode, nach der gesucht werden soll null oder leere oder Whitespace-Strings können wie folgt implementiert werden:

public static bool IsNullOrWhiteSpace(string value)
{
    if (String.IsNullOrEmpty(value))
    {
        return true;
    }

    return String.IsNullOrEmpty(value.Trim());
}

Das String.IsNullOrEmpty führt kein Trimmen durch und prüft nur, ob die Zeichenkette eine Nullreferenz oder eine leere Zeichenkette ist.


49
2018-03-31 11:18



String.IsNullOrEmpty(" ")

... gibt Falsch zurück

String foo = null;
String.IsNullOrEmpty( foo.Trim())

... löst eine Ausnahme aus foo ist Null.

String.IsNullOrEmpty( foo ) || foo.Trim() == String.Empty

... gibt wahr zurück

Natürlich könnten Sie es als eine Erweiterungsfunktion implementieren:

static class StringExtensions
{
    public static bool IsNullOrWhiteSpace(this string value)
    {
        return (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()));
    }
}

11
2018-03-31 11:19