Преобразовать анонимный тип в список <object> - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть набор анонимных объектов, выгруженных из базы данных, которая содержит много полей (до 50).

Пример:

var anonymousData = new
        {
            Z = "2",
            B = "4",
            C = "3",
            D = 5
        }; 

Я хотел бы получить следующий вывод с такими данными

List<object> allObjects ... with { "2", "4", "3", 5 };

Как правильно отразить это?

РЕДАКТИРОВАТЬ: я хотел бы сохранить первоначальный заказ

1 Ответ

0 голосов
/ 11 февраля 2019

С помощью отражения вы можете получить все значения:

var anonymousData = new
        {
            Z = "2",
            B = "4",
            C = "3",
            D = 5
        };

Type t = anonymousData.GetType();
Property[] p = t.GetProperties();
List<object> xy = p.Select(x => x.GetValue(anonymousData)).ToList();

Вы добавили, что хотите сохранить порядок своих свойств в списке результатов.Это невозможно - подумайте об объекте типа Car:

new MyCar { Id = 3, Color= "red"};

, который не отличается от автомобиля, подобного

new MyCar { Color= "red", Id = 3};

, когда свойства переключаются.Имхо, аномальный тип ничем не отличается.Поэтому при экспорте в CSV сортировка ваших свойств не должна иметь никакого значения - в этом случае вам, возможно, следует взглянуть на Dictionary в противном случае.

...