所以我在Visual Studio中有一个带有显示多行字符串的标签的项目,我需要从字符串的末尾删除特定数量的行以防止文本超出标签的边界。我如何在C#中执行此操作?
编辑|对不起,我似乎错误地说了我的问题,我需要删除字符串开头的行而不是结尾。
答案 0 :(得分: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));
答案 1 :(得分:1)
假设您将多行文本存储在名为multiLineString的变量中,并且只想要前三行。
multiLineString = label1.Text;
multiLineString = string.Join(Environment.NewLine,
multiLineString.Split(new string[] { Environment.NewLine},
StringSplitOptions.None).Take(3));
label1.Text = multiLineString;
答案 2 :(得分: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);