我正在處理以製表符分隔的文本文件的導入程序。每個文件的第一行包含像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更多示例 –