我正在开发一个使用制表符分隔的文本文件的导入器。每个文件的第一行包含“列”,如 ItemCode、Language、ImportMode 等,并且可以有不同数量的列。
我能够获得每列的名称,无论是一个还是 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()
返回值相对应的属性的对象?
有什么建议么?