繁体   English   中英

在C#中使用动态属性创建对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM