【发布时间】:2019-05-15 07:25:25
【问题描述】:
我正在使用 CsvHelper 将 CSV 文件读入动态 C# 对象,我想使用 foreach 迭代 List<dynamic> 并获取属性名称和值。
FileInfo file = new FileInfo("C:\\Temp\\CSVTest.csv");
List<dynamic> dynObj;
using (var reader = new StreamReader(file.FullName))
using (var csv = new CsvReader(reader))
{
dynObj = csv.GetRecords<dynamic>().ToList();
foreach (var d in dynObj)
{
var properties = d.GetType().GetProperties();
foreach (var property in properties)
{
var PropertyName = property.Name;
var PropetyValue = d.GetType().GetProperty(property.Name).GetValue(d, null);
}
}
}
var properties = d.GetType().GetProperties(); 总是返回 0 但我可以在调试时看到有属性。
CSV 文件包含以下数据:
Id,Name,Barnd
1,one,abc
2,two,xyz
【问题讨论】:
-
尽量避免
dynamic类型。它非常慢而且不是类型安全的。