?? Объединить для пустой строки?

\d+ соответствует любому положительному числу цифр внутри вашей строки, поэтому он соответствует первому 78 и преуспевает.

Используйте ^\d+$.

Или, еще лучше : "78.46.92.168:8000".isdigit()

150
задан gdoron 20 June 2012 в 08:07
поделиться

3 ответа

Нет встроенного способа сделать это. Однако вы можете заставить свой метод расширения возвращать строку или ноль, что позволит оператору объединения работать. Однако это было бы странно, и я лично предпочитаю ваш нынешний подход.

Поскольку вы уже используете метод расширения, почему бы просто не сделать тот, который возвращает значение или значение по умолчанию:

string result = s.SiteNumber.ConvertNullOrEmptyTo("No Number");
70
ответ дан 23 November 2019 в 22:00
поделиться

C # уже позволяет нам заменять значения для null на ?? . Итак, все, что нам нужно, это расширение, которое преобразует пустую строку в null , а затем мы используем его так:

s.SiteNumber.NullIfEmpty() ?? "No Number";
121
ответ дан 23 November 2019 в 22:00
поделиться

как насчет метода расширения строки ValueOrDefault ( )

public static string ValueOrDefault(this string s, string sDefault)
{
    if (string.IsNullOrEmpty(s))
        return sDefault;
    return s;
}

или вернуть null, если строка пуста:

public static string Value(this string s)
{
    if (string.IsNullOrEmpty(s))
        return null;
    return s;
}

Однако не пробовал эти решения.

3
ответ дан 23 November 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: