2012-09-05 114 views
0

我想實現一個PHP函數,我已經在C#中完成了,但是我不知道C#中用於導航字典的語法! (PHP中的關聯數組)。我所做的基本上是做一個foreach循環來打印關聯數組中的每個屬性實例。我不確定我的問題是否完全清楚,以便讓它更容易,那麼C#會如何等效?在C#字典中循環瀏覽JSON

foreach ($data->response->docs as $info) 
{ 
    echo "{$info->EventId},"; 
    echo "{$info->VenueName},"; 
} 

我只是需要在正確的方向語法明智微調。

感謝

編輯 -

哎呀,當我張貼了這個問題,我累了。我的問題是如何瀏覽從JSON序列化的字典。在我的例子,我分析來自這個樣本數據的兩個特性: -

{"responseHeader":{"status":0,"QTime":2},"response":{"facet_counts":{},"numFound":110,"docs":[{"VenueSEOLink":"/Aberdeen-Music-Hall-tickets-Aberdeen/venue/443660","VenueId":"10512085..... 

等等等等....

所以我試圖找出如何通過字典下去多個級別。 (C#相當於 - >)

回答

0

在C#中,您可以使用System.Collections.Dictionary或通用System.Collections.Generic.Dictionary<TKey, TObject>。我推薦通用字典,因爲它是強類型的,並且每次檢索對象時都不必投射內容。

假設你EVENTID是int,你可以這樣訪問:

Dictionary<int, string> info = new Dictionary<int, string>(); 
int eventId = 42; 
info[eventId] = "Some value"; 

var value = info[eventId]; 
// value = "Some value" as string 

如果您正在使用string鍵只是字典的定義和主要類型更改從intstring

,反覆詞典(或任何託收或其他物體實現IEnumerable),這與PHP基本相同的語法使用爲:

foreach (var item in info) { 
    // Do something with item 
} 

More info Systems.Collections.Generic.IDictionary is here.

+0

任何幫助的傢伙?請參閱編輯 –

+0

嘗試[將json轉換爲C#的這種描述](http://stackoverflow.com/questions/4611031/convert-json-string-to-c-sharp-object)或[在C#中解析json的此描述] (http://stackoverflow.com/questions/6620165/how-to-parse-json-in-c) –