C# 使用“访问动态属性”/&引用;名义上

C# 使用“访问动态属性”/&引用;名义上,c#,csvhelper,C#,Csvhelper,我正在使用CsvHelper从CSV文件创建动态对象 我遇到的问题是,有时名称中会出现非法字符,如下所示: 我是否可以这样说: if (record.Towm/Area == "foo") ... 因为它是动态的,所以我不认为我可以使用反射来循环它,并使用字符串比较来检查名称 我是否可以通过命名数组或其他方法访问它?直接使用列访问列,如record.GetField(3)或甚至record.GetField(“城镇/地区”)等 然后你可以比较 if (String.Equals(record

我正在使用CsvHelper从CSV文件创建动态对象

我遇到的问题是,有时名称中会出现非法字符,如下所示:

我是否可以这样说:

if (record.Towm/Area == "foo") ...
因为它是动态的,所以我不认为我可以使用反射来循环它,并使用字符串比较来检查名称


我是否可以通过命名数组或其他方法访问它?

直接使用列访问列,如
record.GetField(3)
或甚至
record.GetField(“城镇/地区”)等

然后你可以比较

if (String.Equals(record.GetField(3), "foo")) 
{
    //do my stuff.
}

由于它是一个
ExpandoObject
,因此您应该能够使用索引器获取属性,就像您可以使用:

除此之外,您可以将其强制转换为
IDictionary
,并将其视为一个字典

((IDictionary<String, Object>)record)

你试过索引器吗?例如:
record[“Town/Area”]
如何对动态对象执行此操作?我忘记了ExpandoObect可以具有命名索引器。谢谢
((IDictionary<String, Object>)record)
if( record.First(kvp => kvp.Key == "City/Town").Value == foo )