public class myRows
{
public decimal Col1 { get; set; }
public decimal Col2 { get; set; }
public decimal Col3 { get; set; }
public decimal Col4 { get; set; }
public decimal Col5 { get; set; }
public decimal Col6 { get; set; }
public string myDateTimeCol { get; set; }
public myRows(string str)
{
var fields = str.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
Col1 = Convert.ToDecimal(fields[0]);
Col2 = Convert.ToDecimal(fields[1]);
Col3 = Convert.ToDecimal(fields[2]);
Col4 = Convert.ToDecimal(fields[3]);
Col5 = Convert.ToDecimal(fields[4]);
Col6 = Convert.ToDecimal(fields[5]);
myDateTimeCol = string.Format("{0} {1} {2} {3} {4}", fields[6], fields[7], fields[8], fields[9], fields[10]);
}
}
然后我读了我的日志文件
var rows = new List<myRows>();
var sr = new StreamReader(txtFileToImport.Text);
while (!sr.EndOfStream)
{
string s = sr.ReadLine();
if (!String.IsNullOrEmpty(s.Trim()))
{
rows.Add(new myRows(s));
}
}
sr.Close();
dataGridView_preView.DataSource = rows;
这段代码面临的问题是,如果输入 LogFile 有超过 12 列或更多列,我会得到一个索引超出范围异常。
有没有我可以重构代码以使其处理具有任意数量列的任何日志文件。要处理的日志文件具有不同数量的列,我唯一的保证是日期列在所有情况下始终是最后一列。