2011-10-07 85 views
0

我有一個文本框與多啓用,並希望在開始和 結束每一行添加一個字符串添加新的字符到每一行的開頭和結尾,所以每線將改爲在文本框

a + line + b 

現在我知道它與一個foreach循環有關,但不知道如何寫出來。

回答

5

那麼,Lines屬性可能是你想要的。三個選項:

string[] lines = textBox.Lines; 
for (int i = 0; i < lines.Length; i++) 
{ 
    lines[i] = a + lines[i] + b; 
} 
textBox.Lines = lines; 

或者:

textBox.Lines = Array.ConvertAll(textBox.Lines, line => a + line + b); 

或者:

textBox.Lines = textBox.Lines 
         .Select(line => a + line + b) 
         .ToArray(); 
+0

太快了!謝謝,它完美的工作! – SharkRetriever

0

既然你提到的foreach,這裏的另一種方式。

var newLines = new List<string>(textBox1.Lines.Length); 

foreach (string line in textBox1.Lines) 
    newLines.Add(a + line + b); 

textBox1.Lines = newLines.ToArray(); 
1

您可以使用替換整個文本:

text = a + text.Replace(Environment.NewLine, b + Environment.NewLine + a) + b; 
+0

而不是Enviroment.NewLine,我可以使用「\ r \ n」嗎? 或者至少,兩者有什麼區別? – SharkRetriever

+0

@SharkRetriever:NewLine屬性是當前系統上使用的字符組合。如果它是Windows系統,則是\ r \ n'。 – Guffa

0

以下是我使用的字符和b的開頭和結尾添加到包含一串一串行:

 public string Script; 
    string[] lines = Script.Split(new[] { '\r', '\n' }); 
        for (int i = 0; i < lines.Length; i++) 
        { 
         lines[i] = a + lines[i] + b; 
         if (!lines[i].Equals("\"\"+")) 
         { 
          Console.WriteLine(lines[i]); 
          Result += lines[i]+"\n"; 
         } 
        }