我正在处理以制表符分隔的文本文件的导入程序。每个文件的第一行包含像ItemCode,Language,ImportMode等'列',可以有不同数量的列。有没有办法在.NET 3.5中运行时动态创建一个对象?
我可以得到每列的名称,无论是1还是10等等。我用的方法来实现这个返回List<string>
:
private List<string> GetColumnNames(string saveLocation, int numColumns)
{
var data = (File.ReadAllLines(saveLocation));
var columnNames = new List<string>();
for (int i = 0; i < numColumns; i++)
{
var cols = from lines in data
.Take(1)
.Where(l => !string.IsNullOrEmpty(l))
.Select(l => l.Split(delimiter.ToCharArray(), StringSplitOptions.None))
.Select(value => string.Join(" ", value))
let split = lines.Split(' ')
select new
{
Temp = split[i].Trim()
};
foreach (var x in cols)
{
columnNames.Add(x.Temp);
}
}
return columnNames;
}
如果我一直都知道哪些列在期待,我可以创建新的对象,但因为我不这样做,我不知道有没有我可以动态创建一个对象,其属性对应于GetColumnNames()
返回的任何内容吗?
有什么建议吗?
我相信[datatable](http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx)是针对这种情况。 –
谢谢,将进行调查。 – MattSull
查看http://www.dotnetperls.com/datatable更多示例 –