我正在使用 linq 加载一个 csv 文件,但是因为 csv 可能有任意数量的列,它返回的对象将需要动态属性,我不知道该怎么做。
var data = from row in csvData
let col = row.Split(',')
select new
{
Field1 = data[0],
Field2 = data[1],
Field3 = data[2] // etc, etc
};
如果可能,我想用 csv 文件中给定的名称来命名属性,而不是 field1、field2 等。
谢谢!
最佳答案
之后你会用这个做什么?如果您知道别处的名称并且您使用的是 .NET 4,则可以使用 ExpandoObject
- 通过将其用作字典来填充它,然后稍后使用动态类型访问属性名称。但如果它是所有动态的(即您在任何地方都不知道任何静态信息),为什么不直接使用 Dictionary<string, string>
?
关于c# - 在 C# 中创建具有动态属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3574566/