为什么使用Replace方法时字符串不被替换?

本文关键字:替换 字符串 Replace 方法 为什么 | 更新日期: 2023-09-27 18:10:47

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            label1.Text = "Completed";
            string tables = this.webBrowser1.Document.GetElementById("tblProducts").InnerText;
            var lines = tables.Split(new[] { Environment.NewLine }, StringSplitOptions.None).ToList();
            string line1 = lines[0];
            string newline1 = line1.Insert(54, ", ").Insert(36, ", ").Insert(32, ", ").Insert(23, ", ").Insert(12, ", ").Insert(4, ", ");
            lines[0].Replace(line1, newline1);
            lines.Insert(1, "");
            string newText = string.Join(Environment.NewLine, lines);
            StreamWriter w = new StreamWriter(@"c:'temp'table'Table" + count.ToString("D6") + ".txt");
            w.WriteLine(newText);
            w.Close();
            complete = true;
            count ++;
        }

line1 conteint是:תאורסוגפריטמספרקטלוגיתוצרהרכבמצאיתוקףוחלותהאחריותמחירלצרכן然后我插入空格newline1:תאור,סוגפריט,מספרקטלוגי,תוצרהרכב,מצאי,תוקףוחלותהאחריות,מחירלצרכן

但是最后在newText中我看到了旧行。Line1而不是newline1。试线[0]。替换(line1 newline1);还有直线[0]。替换(newline1 line1);但我还是经常看到那句老台词

为什么使用Replace方法时字符串不被替换?

与任何字符串操作一样,您必须将新值赋给原始值:

lines[0] = lines[0].Replace(line1, newline1);

在这个例子中,因为你要替换整个行,你可以这样做:

lines[0] = newline1;