c# - 在 C# 中创建具有动态属性的对象

标签 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
              };

如果可能,我想用 csv 文件中给定的名称来命名属性,而不是 field1、field2 等。

谢谢!

最佳答案

之后你会用这个做什么?如果您知道别处的名称并且您使用的是 .NET 4,则可以使用 ExpandoObject - 通过将其用作字典来填充它,然后稍后使用动态类型访问属性名称。但如果它是所有动态的(即您在任何地方都不知道任何静态信息),为什么不直接使用 Dictionary<string, string>

关于c# - 在 C# 中创建具有动态属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3574566/

相关文章:

c# - 返回c#中数组中取n个连续字符串组成的第一个最长的字符串

c - 动态地从文件或标准输入中读取一行

c++ - 删除数组内对象内的动态分配对象

c# - 如何在 C# 中获取 .gif 文件的持续时间?

c# - 无法在按钮单击 MVC、C# 上获取选定的网格行值

c# - WebBroser1.Navigate 只工作一次 (C#)(重新加载网络浏览器)

c++ dynamic_cast 装饰器实例化失败

c# - 如果数字在 X 和 Y 之间

c# - 从序列末尾获取元素的linq扩展方法

c# - 重构 Linq 代码和 "LINQ to Entities does not recognize the method"