Да, именно это я и сделаю. Если у вас нет LINQ, вы можете использовать универсальный List со своим собственным классом.
public class LogEntry
{
private String _source = String.Empty;
private String _destination = String.Empty;
private String _result = String.Empty;
private String _time = String.Empty;
public String Source
{
get { return _source; }
set { _source = value; }
}
public String Destination
{
get { return _source; }
set { _source = value; }
}
public String Result
{
get { return _source; }
set { _source = value; }
}
public String Time
{
get { return _source; }
set { _source = value; }
}
public LogEntry()
{
}
public LogEntry( String source, String destination, String result, String time )
{
_source = source;
_destination = destination;
_result = result;
_time = time;
}
public LogEntry( String[] args )
{
_source = args[0];
_destination = args[1];
_result = args[2];
_time = args[3];
}
}
Затем вы можете использовать список следующим образом:
List<LogEntry> _logEntries = new List<LogEntry>();
Я бы прочитал каждую строку из файла в строку и создал новый класс LogEntry, передав в результате вызов метода String.Split. Код ниже является строго псевдо-кодом.
char[] splitter = new char[1];
splitter[0] = ' ';
while( readLines into String )
{
_logEntries.Add( new LogEntry( String.Split( splitter ) ) );
}
Это решение чрезвычайно хрупкое, и любое изменение в формате файла журнала будет ужасно нарушать код, но оно будет работать. Кроме того, вы разбиваете пустое пространство, так что вам лучше убедиться, что вы действительно хотите разбить.