Me gustaría escribir un método de extensión para la clase .NET String. Me gustaría que fuera una variación especial en el método Split, que toma un carácter de escape para evitar la división de la cadena cuando se usa un carácter de escape antes del separador.Método de extensión C# - Separación de cadena que también acepta un carácter de escape
¿Cuál es la mejor manera de escribir esto? Tengo curiosidad sobre la mejor forma no regex de abordarlo.
Algo con una firma como ...
public static string[] Split(this string input, string separator, char escapeCharacter)
{
// ...
}
ACTUALIZACIÓN: Debido a que surgió en uno de los comentarios, el escape ...
En C# cuando se escapan caracteres no especiales que presentamos lo mejor el error - CS1009: secuencia de escape no reconocida.
En IE JScript los personajes de escape se descartan. A menos que intente \ uy luego obtenga un error de "dígito hexadecimal esperado". Probé Firefox y tiene el mismo comportamiento.
Me gustaría que este método sea bastante indulgente y siga el modelo de JavaScript. Si escapa en un no separador, debe eliminar "amablemente" el carácter de escape.
Parece que está asumiendo que cada vez que aparece el carácter de escape es seguido por la cadena de separación. ¿Qué pasa si no es? – tvanfosson
Solo estoy hablando de lo que hay en la pregunta: si el carácter de escape aparece antes del separador, debería evitar que ese separador se utilice para dividir. No intento eliminar el carácter de escape ni procesarlo de ninguna otra manera. Ingenua, tal vez, pero esa es toda la información que tenemos. –
cool, ¿cuál es el beneficio de ienumberable sobre devolver una matriz de cadenas? – rizzle