Mi piacerebbe scrivere un metodo di estensione per la classe .NET String. Mi piacerebbe che fosse una varazione speciale per il metodo Split, uno che accetta un carattere di escape per evitare di dividere la stringa quando viene utilizzato un carattere di escape prima del separatore.C# Extension Method - String Split che accetta anche un carattere di escape
Qual è il modo migliore per scrivere questo? Sono curioso del miglior modo non regex di avvicinarlo.
Qualcosa con una firma come ...
public static string[] Split(this string input, string separator, char escapeCharacter)
{
// ...
}
UPDATE: Perché è venuto in uno dei commenti, la fuga ...
In C#, quando la fuga non speciale caratteri si ottiene l'errore - CS1009: sequenza di escape non riconosciuta.
In IE JScript i caratteri di escape vengono espulsi. A meno che tu non provi e ottieni un errore "Digitazione esadecimale prevista". Ho provato Firefox e ha lo stesso comportamento.
Mi piacerebbe che questo metodo fosse piuttosto indulgente e seguisse il modello JavaScript. Se fuggi su un non-separatore dovrebbe semplicemente "gentilmente" rimuovere il carattere di escape.
Sembra che tu stia partendo dal presupposto che ogni volta che compare il carattere di escape è seguito dalla stringa di separazione. Cosa succede se non lo è? – tvanfosson
Sto andando solo su cosa c'è nella domanda - se il carattere di escape appare prima del separatore, dovrebbe impedire che quel separatore venga usato per la divisione. Non cerco di rimuovere il carattere di escape o di elaborarlo in altro modo. Ingenua, forse, ma questa è tutta l'informazione che abbiamo. –
cool, qual è il vantaggio di ienumberable rispetto alla restituzione di un array di stringhe? – rizzle