簡體   English   中英

訪問名稱為“ /”的動態屬性

[英]Access dynamic property with “/” in name

我正在使用CsvHelper從CSV文件創建動態對象。

我的問題是,有時名稱中包含非法字符,例如:

在此處輸入圖片說明

無論如何,我可以做一個這樣的聲明:

if (record.Towm/Area == "foo") ...

因為它是動態的,所以我認為我不能使用反射來遍歷它並使用字符串比較來檢查名稱。

無論如何,我可以通過命名數組或其他方法訪問它嗎?

由於它是ExpandoObject ,因此您應該能夠像IDictionary一樣使用索引器獲取屬性:

if(record["Town/Area"] == "foo") 

除非如此,否則您可以將其IDictionary轉換為IDictionary ,並將其視為此類。

((IDictionary<String, Object>)record)

然后使用linq獲得更多的過度設計的好處:

if( record.First(kvp => kvp.Key == "City/Town").Value == foo ) 

直接使用列號訪問列,例如record.GetField(3)甚至record.GetField("Town/Area")等。

那你可以比較一下

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM