2010-12-12 10 views
5

¿Qué ayudantes útiles para la manipulación de cadenas tiene que compartir?¿Cuál es el ayudante de cadenas más útil que has encontrado?

una vez me escribió un reemplazo para String.Format(), que me parece mucho más limpio de usar:

public static class StringHelpers 
{ 
    public static string Args(this string str, object arg0) 
    { 
     return String.Format(str, arg0); 
    } 

    public static string Args(this string str, object arg0, object arg1) 
    { 
     return String.Format(str, arg0, arg1); 
    } 

    public static string Args(this string str, object arg0, object arg1, object arg2) 
    { 
     return String.Format(str, arg0, arg1, arg2); 
    } 

    public static string Args(this string str, params object[] args) 
    { 
     return String.Format(str, args); 
    } 
} 

Ejemplo:

// instead of String.Format("Hello {0}", name) use: 
"Hello {0}".Args(name) 

¿Qué otros ayudantes útiles tienes para cuerdas Cª#?

+0

No estoy usando ninguno. La tuya se ve genial. – TarasB

+0

Por lo general, es una buena idea incluir un objeto CultureInfo con String.Format. Puede incluir un CultureInfo predeterminado en su método de extensión. –

+0

Un ejemplo relacionado que podría interesarle: http://stackoverflow.com/questions/1322037/how-can-i-create-a-more-user-friendly-string-format-syntax/1322103#1322103 –

Respuesta

4

uno bastante popular que es más de un método de extensión de conveniencia es la siguiente:

public static class StringExtensions 
{ 
    public static bool IsNullOrEmpty(this string s) 
    { 
     return String.IsNullOrEmpty(s); 
    } 
} 

Nada grande, pero escribir myString.IsNullOrEmpty() es más conveniente de String.IsNullOrEmpty(myString).

+0

Yo solía haz esto, pero luego, en retrospectiva, decidiste eliminarlo porque podrías estar llamando a un método en un nulo. –

+0

Si bien es cierto que este es popular (y lo uso a menudo ... probablemente principalmente por pereza), no soy realmente un fanático de él. Hay algunos buenos argumentos en contra en esta publicación: http://stackoverflow.com/questions/790810/is-extinging-string-class-with-isnullorempty-confusing –

Cuestiones relacionadas