2016-06-22 199 views

回答

2

得到的只是兩個值:

var easting = values["Coordinates"][0].Easting; 
    var northing = values["Coordinates"][0].Northing; 

說明:由於values字典

values["Coordinates"]   - get value (i.e. array) of "Coordinates" key 
    values["Coordinates"][0]   - get 1st item of the array of "Coordinates" key 
    values["Coordinates"][0].Easting - get Easting property of ... 
0

values成爲Dictonary,而"Coordinates"是其中的一個關鍵字。所以我們可以通過使用values["Coordinates"]來使用這個鍵訪問關聯的值。在你的情況下,該值將是一個集合(Array)。所以要訪問這些值,你需要指定它的索引,或者你可以遍歷集合來獲取它的值。 正如您已經說過的那樣,這是一個Dictonary<string,Object>您需要轉換對象才能獲取Business對象。如果是這樣,你可以使用下面的代碼片段:

var currentEasting = (Coordinates[])(values["Coordinates"][0]).Easting; 

如果集合就像Dictonary<string,Coordinates>定義,那麼,你需要不投。可以這樣直接訪問它:

var currentEasting = values["Coordinates"][0].Easting; 

你也可以遍歷這些值;這個代碼將幫助你做到這一點:

foreach (Coordinates Co in values["Coordinates"]) 
{ 
    // access each values 
    var someEasting = Co.Easting 
} 
3
var coordinates =(Coordinates[])values["Coordinates"]; 
Console.WriteLine(coordinates[0].Easting); 
Console.WriteLine(coordinates[0].Northing); 
0

它有點不清楚字典是如何定義的。如果它被定義爲Dictionary<string, object>,你將不得不使用反射來從值獲取數據,否則你就必須做一個硬編碼的轉換:

var coords = (Coordinates[])values["Coordinates"]; 
var firstEast = coords[0].Easting; 

這當然會失敗,如果對象是不類型的座標。

如果字典定義爲Dictionary<string, Coordinates[]>,那麼它很簡單:

var firstEast = values["Coordinates"][0].Easting; 
相關問題