2016-04-25 33 views
0

因此,我在Visual Studio中有一個項目,顯示一個多行字符串的標籤,並且需要從該行末尾刪除特定數量的行字符串以防止文本超出標籤邊界。我如何在C#中執行此操作?從C#中的字符串末尾刪除一定數量的行

編輯|對不起,我似乎錯誤地提到了我的問題,我需要從字符串的開頭刪除行而不是結尾。

回答

2

爲了保持前3:

text = string.Join("\n", text.Split('\n').Take(3)); 

並經過

對不起......,我需要從字符串,而不是結束的開始刪除線。

var lines = text.Split('\n'); 
text = string.Join("\n", lines.Skip(lines.Length - 3)); 
+0

'\ N'是不是在Windows中的有效換行符。你可能想使用'Environment.NewLine'。 –

+0

它(''\ n'')通常是。但即使在這裏玩'r',他們也會被保留下來。 –

+0

謝謝,這工作得很好。 – TacoMakerMan

1

假設你存儲在名爲MULTILINESTRING變量的多行文字,並希望只是前三行。

multiLineString = label1.Text; 

multiLineString = string.Join(Environment.NewLine, 
       multiLineString.Split(new string[] { Environment.NewLine}, 
      StringSplitOptions.None).Take(3)); 

label1.Text = multiLineString; 
0

試試這個(僅保留第一MAX_NUMBER_OF_LINES):

var lines = originalstring.Split(new [] { '\r', '\n' }); // <-- I used constansts instead of Enivronment.NewLine because I'm not sure about input format 
lines = lines.Take(MAX_NUMBER_OF_LINES); 
var newstring = String.Join(Environment.NewLine, lines);