2016-12-01 3 views
3

У меня есть цикл foreach в C#, который возвращает некоторые данные инвентаризации, свойство location_id возвращается как object[]. цикл следующим образом,Как получить доступ к объекту по индексу C#

foreach (XmlRpcStruct item in result) 
{ 
    object obj = item["location_id"]; 
} 

в отладчике, я вижу объект как следующее, enter image description here

, так что я думаю, объект что-то вроде

obj[0] = 12 
obj[1] = "WH/Stock" 

Я пытался получить доступ к obj как obj[0] затем я получаю

Невозможно применить индексирование с [] к выражению типа «объект»

Итак, как я могу получить доступ к объекту по индексу для извлечения значений, таких как 12 и WH/Stock

+0

"но это не работает": Какие ошибки вы получаете? –

+0

При попытке с помощью 'obj [0]' вы получили ошибку компилятора или ошибку выполнения или что-то еще? –

+0

Да, я пробовал это, тогда я получаю ошибку 'не может применить индексацию с [] к выражению типа 'object'' – nuwaus

ответ

5

В ролях obj как объект [ ] с использованием:

var list = (object[])obj; 

Тогда вы можете использовать list[0].

+1

Спасибо, это сработало для меня. – nuwaus

+1

Не забудьте отметить ответ. :) – Emad

1

Укажите тип объекта массива:

Или даже проще, пусть компилятор типа Infer:

var obj = item["location_id"]; 
+0

Пробовал это уже, тогда вы получите 'Невозможно неявно преобразовать тип 'object' в 'object []'. Явное преобразование существует (вам не хватает метаданных?) 'Компилировать ошибку. – nuwaus

Смежные вопросы