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();
}有没有更好的方法
{
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();
}有没有更好的方法
s = s.Replace("\r\n","");
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();