逐行搜索c#时,字符串生成器与列表字符串

本文关键字:字符串 列表 逐行 搜索 | 更新日期: 2023-09-27 18:25:00

我有一个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;
} 

假设CCD_ 2不包含一行而是包含多行

我想知道的是,有没有更快的方法来检查这些线路?

对我来说,唯一简单的其他方法是使用stringBuilder,我更愿意尝试其他方法

根据你的经验,我应该把BufferLogList<string>改成其他类型吗?

逐行搜索c#时,字符串生成器与列表字符串

最后一个问题优先-是的,我会使用StringBuilder而不是List(字符串),因为它更适合你正在做的事情(用增量输入构建字符串)。只是需要更整洁而不是更好的表现。

我想你在问如何等到StringBuilder包含特定的字符序列?与其把它分成几行,你有什么理由不能直接使用IndexOf吗?这样可以避免在内存中移动字符串,而且速度非常快。