C#-从字符串、对象类型的字典中的对象获取数组值
我有一个类型为的字典,它包含一个具有两个十进制属性值的对象数组。为清楚起见,它看起来如下所示:C#-从字符串、对象类型的字典中的对象获取数组值,c#,arrays,oop,dictionary,C#,Arrays,Oop,Dictionary,我有一个类型为的字典,它包含一个具有两个十进制属性值的对象数组。为清楚起见,它看起来如下所示: var currentEasting = values["Coordinates"][0].Easting; 如何访问这些东距值和北距值?让值成为命令,并且的“坐标”是其中的一个键。因此,我们可以使用values[“Coordinates”]访问与此键相关的值。在您的情况下,该值将是一个集合(数组)。因此,要访问这些值,您需要指定其索引,或者可以遍历集合以获取其值。 正如您已经说过的那样,这是一
var currentEasting = values["Coordinates"][0].Easting;
如何访问这些东距值和北距值?让
值
成为命令,并且的“坐标”
是其中的一个键。因此,我们可以使用values[“Coordinates”]
访问与此键相关的值。在您的情况下,该值将是一个集合(数组)。因此,要访问这些值,您需要指定其索引,或者可以遍历集合以获取其值。
正如您已经说过的那样,这是一个命令式的,您需要强制转换对象以获得业务对象。如果是这样,您可以使用以下代码段:
var currentEasting = (Coordinates[])(values["Coordinates"][0]).Easting;
如果集合的定义类似于dictional
,则不需要强制转换。可以像这样直接访问它:
var currentEasting = values["Coordinates"][0].Easting;
您还可以迭代这些值;此代码将帮助您做到这一点:
foreach (Coordinates Co in values["Coordinates"])
{
// access each values
var someEasting = Co.Easting
}
让
值
作为命令,并且的“坐标”
是其中的一个键。因此,我们可以使用values[“Coordinates”]
访问与此键相关的值。在您的情况下,该值将是一个集合(数组)。因此,要访问这些值,您需要指定其索引,或者可以遍历集合以获取其值。
正如您已经说过的那样,这是一个命令式的,您需要强制转换对象以获得业务对象。如果是这样,您可以使用以下代码段:
var currentEasting = (Coordinates[])(values["Coordinates"][0]).Easting;
如果集合的定义类似于dictional
,则不需要强制转换。可以像这样直接访问它:
var currentEasting = values["Coordinates"][0].Easting;
您还可以迭代这些值;此代码将帮助您做到这一点:
foreach (Coordinates Co in values["Coordinates"])
{
// access each values
var someEasting = Co.Easting
}
仅获取两个值:
var easting = values["Coordinates"][0].Easting;
var northing = values["Coordinates"][0].Northing;
说明:由于值是一个字典:
仅获取两个值:
var easting = values["Coordinates"][0].Easting;
var northing = values["Coordinates"][0].Northing;
说明:由于值是一个字典:
这本词典的定义有点不清楚。如果定义为Dictionary
,则必须使用反射从值中获取数据,或者必须进行硬编码转换:
var coords = (Coordinates[])values["Coordinates"];
var firstEast = coords[0].Easting;
如果对象不是坐标类型,则此操作当然会失败
如果字典定义为字典
,那么它很简单:
var firstEast = values["Coordinates"][0].Easting;
这本词典的定义有点不清楚。如果定义为Dictionary
,则必须使用反射从值中获取数据,或者必须进行硬编码转换:
var coords = (Coordinates[])values["Coordinates"];
var firstEast = coords[0].Easting;
如果对象不是坐标类型,则此操作当然会失败
如果字典定义为字典
,那么它很简单:
var firstEast = values["Coordinates"][0].Easting;
((坐标)值[CoordinateIndex].value).东距((坐标)值[CoordinateIndex].value).东距