计数出现次数
本文关键字: | 更新日期: 2023-09-27 17:57:33
当前我有一个字符串声明为RxString。Rxstring表示数据字符串,例如:
T 112 22.0
现在我需要提取出数据的中间值来进行比较。因此我做了拆分。代码如下:
string[] number = RxString.Split(' ');
string unit = number[1];
所以现在中间值被声明为字符串单元。
正在从串行端口接收数据,例如:
T 11 22.2
T 42 22.0
T 42 22.0
T 42 23.2
T 22 20.8
根据中间值的出现次数,我需要执行一些操作。例如,如果42恰好在行下出现4次(一个接一个),我需要执行一个操作,否则数据的记录将照常进行。我该如何处理计数?
while (serialPort1.IsOpen)
{
string[] number = RxString.Split(' ');
string unit = number[1];
(Code for checking repeat)
if (unit repeats 4times)
{execute an action then record in db then reset counter}
else
{record in db then reset counter}
}
有道理吗?
假设您有一个数组,用于所有中间值:
string[] values = {11, 42, 42, 42, 22};
int count = 1;
for(int i = 1; i < values.Count; i++) {
if(values[i-1] == values[i])
count++;
else
count = 1;
if(count == 4 && values[i] == "42")
Execute(); // Change this
RecordInDb(); // Change this
}