2016-06-22 154 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; 
相关问题