C#form 串口str内数据不删除情况,筛选出需要信息

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
byte data = 12;
int len = 0;
int bufsize = (int)serialPort1.BytesToRead; //获取缓存字节数

        while (len < bufsize) //获取之后一个一个取
        {
            data = (byte)serialPort1.ReadByte(); //获取串口的值
            len++;

            string **str**= Convert.ToString(data, 16).ToUpper();//获取之后我们要在richtextbox中输出
            if (str.Contains(" 0 "))
            {
                richTextBox1.Text = "";  
                serialPort1.DiscardInBuffer();//清除之前的缓存
            }
            if (str.Length == 1)//如果我们获取的值是一位我们在前面补个0
            {
                richTextBox1.AppendText(" 0" +** str**);
               
            }
            else
            {
                richTextBox1.AppendText(" " + str);//两个值就在前面加一个空格分隔 
            }
        } 
        serialPort1.DiscardInBuffer();//清除之前的缓存
        richTextBox1.AppendText(System.Environment.NewLine);//换行 
        }

str为串口接收数据存储函数,如何用if筛选所要信息