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

时间:2014-06-28 03:53:41

标签: c# .net winforms

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] .Replace(line1,newline1);还有行[0] .Replace(newline1,line1);但我仍然一直看到旧线。

1 个答案:

答案 0 :(得分:5)

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

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

在这种情况下,由于您要替换整个行,您可以这样做:

lines[0] = newline1;