Un liner per If stringa non è nullo o vuoto altro

Di solito uso qualcosa del genere per vari motivi in ​​un’applicazione:

if (String.IsNullOrEmpty(strFoo)) { FooTextBox.Text = "0"; } else { FooTextBox.Text = strFoo; } 

Se lo userò molto creerò un metodo che restituisce la stringa desiderata. Per esempio:

 public string NonBlankValueOf(string strTestString) { if (String.IsNullOrEmpty(strTestString)) return "0"; else return strTestString; } 

e usalo come:

 FooTextBox.Text = NonBlankValueOf(strFoo); 

Mi sono sempre chiesto se c’era qualcosa che faceva parte di C # che avrebbe fatto questo per me. Qualcosa che potrebbe essere chiamato come:

 FooTextBox.Text = String.IsNullOrEmpty(strFoo,"0") 

il secondo parametro è il valore restituito se String.IsNullOrEmpty(strFoo) == true

Se qualcuno non ha qualche approccio migliore che usano?

    Esiste un operatore coalescente null ( ?? ), ma non gestirà stringhe vuote.

    Se tu fossi interessato solo a gestire le stringhe null, lo useresti come

     string output = somePossiblyNullString ?? "0"; 

    Per il tuo bisogno specifico, c’è semplicemente l’operatore condizionale bool expr ? true_value : false_value bool expr ? true_value : false_value che puoi usare semplicemente se / else blocchi di istruzioni che impostano o restituiscono un valore.

     string output = string.IsNullOrEmpty(someString) ? "0" : someString; 

    Potresti usare l’ operatore ternario :

     return string.IsNullOrEmpty(strTestString) ? "0" : strTestString FooTextBox.Text = string.IsNullOrEmpty(strFoo) ? "0" : strFoo; 

    Puoi scrivere il tuo metodo di estensione per tipo String: –

      public static string NonBlankValueOf(this string source) { return (string.IsNullOrEmpty(source)) ? "0" : source; } 

    Ora puoi usarlo come con qualsiasi tipo di stringa

     FooTextBox.Text = strFoo.NonBlankValueOf(); 

    Questo può aiutare:

     public string NonBlankValueOf(string strTestString) { return String.IsNullOrEmpty(strTestString)? "0": strTestString; } 

    Vecchia domanda, ma ho pensato di aggiungere questo per dare una mano,

     #if DOTNET35 bool isTrulyEmpty = String.IsNullOrEmpty(s) || s.Trim().Length == 0; #else bool isTrulyEmpty = String.IsNullOrWhiteSpace(s) ; #endif