gpt4 book ai didi

c# - 从字符串生成器/字符串 c# 中删除第一行

转载 作者:行者123 更新时间:2023-11-30 13:17:06 25 4
gpt4 key购买 nike

好的,所以我正在尝试在表单中制作一个类似于文本框的“控制台”,但是一旦到达底部,无法向上滚动,它只会删除顶行,我遇到了一些困难。到目前为止,当它到达底部时,它会删除顶行,但只有一次,它会照常进行。这是我的功能:

   StringBuilder sr = new StringBuilder();
public void writeLine(string input)
{
string firstline = "";
int numLines = Convert.ToString(sr).Split('\n').Length;
if (numLines > 15) //Max Lines
{
sr.Remove(0, Convert.ToString(sr).Split('\n').FirstOrDefault().Length);
}
sr.Append(input + "\r\n");
consoleTxtBox.Text = Convert.ToString(sr) + numLines;
}

如果有人能解决这个问题就太好了,谢谢

卢卡斯

最佳答案

首先,您的解决方案有什么问题:它不起作用的原因是它删除了该行的内容,但它忽略了末尾的 \n 。添加 1 应该可以解决这个问题:

sr.Remove(0, Convert.ToString(sr).Split('\n').FirstOrDefault().Length+1);              
// ^
// |
// This will take care of the trailing '\n' after the first line ---+

现在用更简单的方法来做:你需要做的就是找到第一个 \n,然后在它后面取子字符串,就像这样:

string RemoveFirstLine(string s) {
return s.Substring(s.IndexOf(Environment.NewLine)+1);
}

请注意,即使字符串中没有换行符,此代码也不会崩溃,即当 IndexOf 返回 -1(在这种情况下,不会删除任何内容)。

关于c# - 从字符串生成器/字符串 c# 中删除第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16167078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com