2017-08-02 1 views
0

Ich habe eine Anwendung, die Werte in Dokumenten aktualisiert, jedoch einige dieser Dokumente haben mehrere Einträge dieses Werts. Aus diesem Grund habe ich eine Do Something-Schleife erstellt, aber dies ist nur Schleifen und ersetzt nicht die Werte.Stuck in einer Schleife, die einen Wert aktualisiert

mein Code wie folgt:

do 
{ 
    int dollarIndex = script.IndexOf("$"); 
    string nextTenChars = script.Substring(dollarIndex - 17, 17); 
    string promptValue = CreateInput.ShowDialog(nextTenChars, "Input"); 
    script.Replace("$", promptValue); 
} 
while (script.Contains("$")); 
+6

Angenommen seine eine Zeichenfolge, die * unveränderlich ist *: 'script = script.Replace (...' –

+0

@AlexK, danke Alex, aber das überprüft nur den ersten Wert und aktualisiert keine der anderen – Tom

+3

'script.Replace' * gibt * die zurück neue Zeichenfolge mit dem Ersatz gemacht - es ändert sich nicht "Skript" an Ort und Stelle. Sie müssen den Rückgabewert speichern, indem Sie das Original überschreiben, sonst enthält 'script' immer ein' $ 'so' script.Contains ("$") 'ist immer' true', also läuft Ihre Schleife bis zum Hitzetod des Universums. –

Antwort

3

Strings sind unveränderlich, so was Sie tun müssen:

script = script.Replace("$", promptValue); 

einfach tun

script.Replace("$", promptValue); 

Ist der Wert nicht aktualisieren script

Verwandte Themen