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

Gre*_*reg 5 c# linq dynamic object

我正在使用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
              };
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想根据csv文件中给出的名称命名属性,而不是field1,field2等.

谢谢!

Jon*_*eet 7

之后你会怎么做?如果您知道其他地方的名称并且您正在使用.NET 4,则可以使用ExpandoObject- 将其用作字典填充它,然后使用动态类型访问属性名称.但如果它都是动态的(即你在任何地方都不知道任何东西),你为什么不用它Dictionary<string, string>