【发布时间】:2014-11-12 17:00:04
【问题描述】:
我有一个 C# 对象列表,我正在尝试访问它的嵌套对象。这是 Visual Studio 调试器的结构(抱歉,我是该网站的新手,无法嵌入图片):
>product.Product {Product.AxdEntity_Product_EcoResProduct[1]}
>> - [0] {Product.EcoResProductMaster} // #1 - Please note curley braces
>>> - [Product.EcoResProductMaster] // #2 - Please note brackes
>>> + base {Product....
>>> + ModelingPolicy
>> + Identifier
要访问 #1 中的属性,我会执行以下操作:
var prod = product.Product[0];
然后我可以这样访问“标识符”:
var identifier = prod.Identifier[0]...
要访问 #2 中的属性(例如 ModelingPolicy),我不知道该怎么做:
var prod = product.Product[0][WhatShouldGoHere?].ModelingPolicy[0] ...?? I need help here
最后,我想像使用 prod.Identifier[0] 一样访问 ModelingPolicy[0]。 Product 类是从 Web 服务返回的,我无权访问它的定义。至少我不这么认为。
感谢您的指导!
【问题讨论】:
-
您应该从使用数组切换到 List<T> 或其他通用集合。它在 99% 的情况下更合适。此外,您应该修改您的帖子以包含您的产品类的类结构和您的标识符类。
-
查看调试器并不是确定代码应该是什么的好方法,因为调试器显示的内容超出了您在运行时所能确定的范围。我将发布具有
Product属性的类型和数组类型的类定义(看起来像AxdEntity_Product_EcoResProduct)。 -
感谢您的提示。我将对其进行修改,但请注意,我从 Web 服务获取结果作为 Product 类,因此此处列出的内容是服务返回给我的所有对象。我只是想访问#2 及其属性。我已经更新了这个问题,希望能更清楚。