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).东距