真正最简单的方法是使用正则表达式,而不是 split 和 indexof 操作。
正则表达式允许您指定一种模式,可以直接从中提取字符串的片段。如果格式发生变化,或者有一些最初没有考虑到的细微之处,您可以通过调整表达式来解决问题,而不是重写一堆代码。
以下是 .NET 中正则表达式的一些文档:http: //msdn.microsoft.com/en-us/library/az24scfc.aspx
这是一些示例代码,可能会执行您想要的操作。您可能需要稍作调整才能获得所需的结果。
var m = Regex.Match(currentLine, @"^\[(?<date>[^\]]*)\]\s+(?<int>[0-9]+)\s+(?<message>.*)\s*$");
if(m.Success) {
// may need to do something fancier to parse the date, but that's an exercise for the reader
var myDate = DateTime.Parse(m.Groups["date"].Value);
var myInt = int.Parse(m.Groups["int"].Value);
var myMessage = m.Groups["message"].Value;
}