2016-06-22 3 views

答えて

2

:このコードは、それを行うのに役立ちます

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をディクテーションとし、"Coordinates"をその内部のキーとします。 values["Coordinates"]を使用して、このキーを使用して関連する値にアクセスできるようにします。あなたの場合、値はコレクション(配列)になります。したがって、それらの値にアクセスするには、そのインデックスを指定するか、コレクションを反復して値を取得する必要があります。 すでに述べたように、それはDictonary<string,Object>でした。ビジネスオブジェクトを取得するには、オブジェクトをキャストする必要があります。次のスニペットを使用することができますもしそうなら:

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

をコレクションがDictonary<string,Coordinates>のように定義されている場合、あなたはキャストする必要はありません。

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

これらの値を繰り返し処理することもできます。

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

説明::values辞書ですので、:ちょうど2つの値を取得するには

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; 
関連する問題