繁体   English   中英

逐行搜索C#时stringbuilder vs列表字符串

[英]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 ,我更愿意尝试其他方法

也根据您的经验,我应该将BufferLogList<string>更改为其他类型吗?

首先是最后一个问题-是的,我将使用StringBuilder而不是List(string),因为它更适合您的工作(使用增量输入构建字符串)。 只是整理而不是必要地改善性能。

我认为您在问如何等待StringBuilder包含特定的字符序列? 除了将它分成几行外,还有什么原因不能仅仅使用IndexOf吗? 这样可以避免在内存中移动字符串的需求,而且速度很快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM