答案 0 :(得分:3)
var coordinates =(Coordinates[])values["Coordinates"];
Console.WriteLine(coordinates[0].Easting);
Console.WriteLine(coordinates[0].Northing);
答案 1 :(得分: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 ...
答案 2 :(得分:1)
让values
成为Dictonary,"Coordinates"
是其中的一个Key。这样我们就可以使用values["Coordinates"]
使用此密钥访问关联的值。在您的情况下,该值将是一个集合(数组)。因此,要访问这些值,您需要指定其索引,或者您可以遍历集合以获取它的值。
正如您已经说过的那样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 :(得分:0)
有点不清楚词典的定义方式。如果它被定义为Dictionary<string, object>
,您将必须使用反射来从值中获取数据,否则您将不得不进行硬编码演员:
var coords = (Coordinates[])values["Coordinates"];
var firstEast = coords[0].Easting;
如果对象不是Coordinates类型,那么这当然会失败。
如果字典定义为Dictionary<string, Coordinates[]>
,那么很简单:
var firstEast = values["Coordinates"][0].Easting;