2016-06-22 6 views

Antwort

2

Um nur zwei Werte:

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

Erläuterung: seit values ein Wörterbuch ist:

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

Lassen Sie values der Dictonary sein und die "Coordinates" ist ein Schlüssel drin. Damit wir mit diesem Schlüssel auf die zugehörigen Werte zugreifen können, verwenden Sie values["Coordinates"]. In Ihrem Fall wird der Wert eine Sammlung (Array) sein. Um auf diese Werte zuzugreifen, müssen Sie den Index angeben oder Sie können die Auflistung durchlaufen, um ihre Werte zu erhalten. Wie Sie bereits sagten, war es ein Dictonary<string,Object> Sie müssen das Objekt umwandeln, um das Business-Objekt zu erhalten. Wenn ja, können Sie das folgende Snippet verwenden:

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

Wenn die Sammlung wie Dictonary<string,Coordinates> definiert ist, dann brauchen Sie nicht zu werfen. Kann direkt darauf zugreifen:

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

Sie können auch durch diese Werte iterieren; Dieser Code wird Ihnen helfen, das zu tun:

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

Es ist unklar, wie das Wörterbuch definiert ist. Wenn es als Dictionary<string, object> definiert ist, müssen Sie entweder Reflexion verwenden, um Daten aus dem Wert zu erhalten, oder Sie werden eine hartcodierte Besetzung zu tun haben:

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

Dies wird natürlich fehlschlagen, wenn das Objekt nicht ist vom Typ Koordinaten.

Wenn das Wörterbuch als Dictionary<string, Coordinates[]> definiert ist, dann ist es einfach:

var firstEast = values["Coordinates"][0].Easting; 
Verwandte Themen