Haben Sie es so versuchen:
string text = GetTextFromSomewhere();
text.Replace("\\", "");
text.Replace("\"", "");
? Wenn ja, das ist das Problem - Replace
nicht die original Zeichenfolge ändern, es gibt eine neue String mit dem Ersatz ausgeführt ... so würde Sie wollen:
string text = GetTextFromSomewhere();
text = text.Replace("\\", "").Replace("\"", "");
Beachten Sie, dass diese ersetzen jeder Backslash und jedes doppelte Anführungszeichen; wenn Sie nur das Paar „Backslash gefolgt von doppelten Anführungszeichen“ ersetzen wollte sie würden gerade verwenden:
string text = GetTextFromSomewhere();
text = text.Replace("\\\"", "");
(Wie in den Kommentaren erwähnt, ist dies, weil Strings unveränderlich in .NET sind - wenn Sie habe irgendwie ein String-Objekt, diese Zeichenfolge hat immer den gleichen Inhalt Sie können einer Variablen natürlich einen Verweis auf eine andere-Zeichenfolge zuweisen, aber das ändert den Inhalt der vorhandenen Zeichenfolge nicht wirklich.)
ein häufig vorkommender Fehler, wird aber sehr oft gemacht.In C# ist ein 'String' unveränderlich, wenn Sie etwas ändern, wie zum Beispiel die' Replace'-Methode, wird immer eine neue Zeichenkette zurückgegeben. – Anthony
Beachten Sie auch, dass der Debugger ist Zeichenketten bei der Darstellung entgehen Diese zusätzlichen Backslashes können natürlich nicht durch '.Replace()' entfernt werden. –