如何通过索引 C# 访问对象 [关闭]
Posted
技术标签:
【中文标题】如何通过索引 C# 访问对象 [关闭]【英文标题】:How to access Object by index C# [closed] 【发布时间】:2017-04-15 17:45:27 【问题描述】:我在 C# 中有一个 foreach 循环,它返回一些库存数据,属性 location_id
返回为 object[]
。循环如下,
foreach (XmlRpcStruct item in result)
object obj = item["location_id"];
在调试器中,我看到的对象如下,
所以我猜对象是这样的
obj[0] = 12
obj[1] = "WH/Stock"
我尝试像obj[0]
一样访问obj
然后我得到了
无法将带有 [] 的索引应用于“对象”类型的表达式
那么,如何通过索引访问对象以检索12
和WH/Stock
等值
【问题讨论】:
“但这不起作用”:你得到什么错误? 在尝试使用obj[0]
时,您是否遇到编译器错误或执行错误或其他什么?
是的,我试过了,然后我得到了错误cannot apply indexing with[] to an expression of type 'object'
看看这个answer
我不知道为什么这是“关闭为题外话”,因为我正在为完全相同的事情而苦苦挣扎。一定要喜欢 SO 和他们的狂妄自大。
【参考方案1】:
将obj
转换为 object[] 使用:
var list = (object[])obj;
那么你可以使用list[0]
。
【讨论】:
谢谢,这对我很有效。 别忘了标记答案。 :) 很好的答案,谢谢@Emad先生! 也称为装箱和拆箱c-sharpcorner.com/blogs/…【参考方案2】:指定对象数组类型:
object[] obj = item["location_id"];
或者,更简单的是,让编译器推断类型:
var obj = item["location_id"];
【讨论】:
已经试过了,然后你会得到Cannot implicitly convert type 'object' to 'object[]'. An explicit conversion exists (are you missing a cast?)
编译错误。以上是关于如何通过索引 C# 访问对象 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章