2つの10進数のプロパティ値を持つオブジェクトの配列を含む型の辞書があります。明確にするためには、次のようになります。C# - 辞書のオブジェクトから配列型の文字列型のオブジェクトを取得する
私はそれらの東距と北距値の値にアクセスするにはどうすればよいですか?
2つの10進数のプロパティ値を持つオブジェクトの配列を含む型の辞書があります。明確にするためには、次のようになります。C# - 辞書のオブジェクトから配列型の文字列型のオブジェクトを取得する
私はそれらの東距と北距値の値にアクセスするにはどうすればよいですか?
:このコードは、それを行うのに役立ちます
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 ...
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
}
var coordinates =(Coordinates[])values["Coordinates"];
Console.WriteLine(coordinates[0].Easting);
Console.WriteLine(coordinates[0].Northing);
それを辞書がどのように定義されているかが少し不明です。それはDictionary<string, object>
のように定義されている場合は、値のデータを取得するためにリフレクションを使用する必要がありますか、あなたは、ハードコーディングされたキャスト行う必要があります:オブジェクトがない場合はもちろんのこの意志が失敗
var coords = (Coordinates[])values["Coordinates"];
var firstEast = coords[0].Easting;
をタイプ座標の。
辞書がDictionary<string, Coordinates[]>
として定義されている場合、それは簡単である:
var firstEast = values["Coordinates"][0].Easting;
((座標)の値[CoordinatesIndex] .VALUE).Easting – Fruchtzwerg