private CommandData[] AnalyzeRecvMessage(StringBuilder buffer)
        {
            var messageList = new List<CommandData>();
            var buf = buffer.ToString();
            var sb = new StringBuilder();
            char lastChar = 'A';
            for (int i = 0; i < buf.Length; ++i)
            {
                char currChar = buf[i];
                if (lastChar == '\r' &&
                    currChar == '\n')
                {
                    sb.Remove(sb.Length - 1, 1);
                    messageList.Add(new CommandData(sb.ToString()));
                    sb.Clear();
                }
                else
                {
                    sb.Append(currChar);
                }
                lastChar = currChar;
            }
            buffer.Clear();
            if (sb.Length > 0)
            {
                buffer.Append(sb.ToString());
            }
            return messageList.ToArray();
        }有没有更好的方法

解决方案 »

  1.   

    replace方法            string s = "aaaaadsdsd\rds\nd\r\ncc";
                s = s.Replace("\r\n","");
      

  2.   


                var messageList = new List<CommandData>();
                TextReader reader = new StringReader(buffer.ToString());
                string lineData = string.Empty;
                while( (lineData = reader.ReadLine()) != null )
                {
                    messageList.Add(new CommandData(lineData));
                }
                reader.Close();
                return messageList.ToArray();
      

  3.   

    对返回来的数据用Replace方法进行过滤
      

  4.   

    string Str = "Hello\0\0\0\0\0\0\0\0\0".Replace("\0", "");