2016-04-25 34 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);