[英]stringbuilder vs list string when searching line by line c#
我有一个WinForm
应用程序,由于历史的决定,从Serail / telnet终端获取输出,所有输出都进入这样的列表
static List<string> BufferLog = new List<string>();
serialInputData += serialPort.ReadExisting();
BufferLog.Add(serialInputData);
现在,我想添加另一个函数来阻塞线程,直到一个句子{也可能是一个单词}我想做的是
if (IsWaitForCustomMessage)
{
while(IsNotTimeout)
{
List<string> waiterList = serialInputData.Split('\n').ToList();
if (waiterList.Exists(x => x.Contains("SomeSentenc")) return true ;
}
return false;
}
假设serialInputData
不包含一行,而是包含多行
我想知道的是,有没有更快的方法来检查这些行?
对我来说, stringBuilder
简单的方法是使用stringBuilder
,我更愿意尝试其他方法
也根据您的经验,我应该将BufferLog
从List<string>
更改为其他类型吗?
首先是最后一个问题-是的,我将使用StringBuilder而不是List(string),因为它更适合您的工作(使用增量输入构建字符串)。 只是整理而不是必要地改善性能。
我认为您在问如何等待StringBuilder包含特定的字符序列? 除了将它分成几行外,还有什么原因不能仅仅使用IndexOf吗? 这样可以避免在内存中移动字符串的需求,而且速度很快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.