[英]Creating an object with dynamic properties in C#
我正在使用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>
?
你可以做的只是使用数组甚至是词典,但如果你想用动态做一些很酷的东西,请查看Clay
http://weblogs.asp.net/bleroy/archive/2010/08/18/clay-malleable-c-dynamic-objects-part-2.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.