У меня есть массив объектов, как этотКак я могу получить каждое значение внутри массив анонимного объекта в C#
var items = new object[]
{
new {name= "house",code=1,price= 30},
new {name= "water",code=2,price= 323},
new {name= "food",code=3,price= 45}
};
Я хочу, чтобы добавить каждый из этого значения в таблицах данных строк (около 1 объекта - 1 ряд) с помощью метода, который имеет параметр - массив объекта.
Я стараюсь делать как код ниже, но это просто добавить каждый из объекта в моем массиве элементов в ячейках таблицы в Excel файл (я уже добавил заголовки в моей таблице данных)
public void Create(object[] items)
{
// table headers are created before this line.......
var table = new DataTable();
table.Rows.Add(items);
}
Так что мне нужно делать, например, как пропустить мой массив и получить каждое его значение для назначения строке. Ожидаемый результат в моем файле:
Name Code Price
===================
house 1 30
water 2 323
food 3 45
Спасибо (и, пожалуйста, комментарий, если мой вопрос не достаточно ясно)
Может быть, [этот ответ] (http://stackoverflow.com/questions/4023462/how-do-i-automatically-display-all-properties-of- a-class-and-their-values-in-as/4023521 # 4023521). – Oliver
Вы должны создать собственный класс/структуру для этой цели, вместо использования анонимных типов. – Abion47
Когда вы создаете переменную 'items' _local_ в первой строке, вы можете использовать' var items = new [] {new {name = "house", code = 1, price = 30},/* ... * /} ', чтобы массив анонимных объектов был строго типизирован. Но как только вы перейдете к методу, например 'Create', у вас не может быть сильного ввода, потому что нет имени анонимного типа, поэтому вы не можете упоминать его в сигнатуре метода. Поэтому рассмотрим комментарий @ Abion47 в этом случае. –