Ho bisogno di sostituire alcune parti di una stringa tra loro usando C#. Potrei trovare solo una domanda simile su come ottenere questo here ma era PHP.Come sostituire due o più stringhe tra loro?
La mia situazione comporta un Dizionario [String, String] che contiene le coppie di sostituire come:
- cane, gatto
- gatto, topo,
- del mouse, raptor
E Ho una stringa con il valore di:
"My dog ate a cat which once ate a mouse got eaten by a raptor"
Ho bisogno di una funzione per ottenere questo:
"My cat ate a mouse which once ate a raptor got eaten by a raptor"
Se io enumerare il dizionario e chiamare String.Replace per ordine, ottengo questo:
"My raptor ate a raptor which once ate a raptor got eaten by a raptor"
E 'strano, se questo non è stato chiesto prima , (È conoscenza comune?) Ma non ho potuto trovare nessuno. Quindi mi dispiace se lo ha e l'ho perso.
Un modo sporco per farlo sarebbe utilizzare un testo intermedio. Quindi, converti 'dog' in '1', 'cat' in '2', e poi fai un secondo passaggio dove converti '1' e '2' in quello che vuoi. Assicurati di utilizzare qualcosa di più unico di "1" e "2" (forse un GUID). Come ho detto, è sporco, e sono sicuro che c'è un modo migliore. – xbonez
Cosa vuoi (come output) per un dizionario {"foo": "1", "bar": "2", "foobar": "3"}, e inserisci "foo bar foobarbar"? – Dogbert
@Dogbert "1 2 32" –