我从数据库中转储了一组匿名对象,该数据库包含许多字段(最多50个)。
示例:
var anonymousData = new
{
Z = "2",
B = "4",
C = "3",
D = 5
};
我希望获得带有此类数据的以下输出
List<object> allObjects ... with { "2", "4", "3", 5 };
反映它的正确方法是什么?
编辑:我想保持最初的顺序
答案 0 :(得分:2)
通过反射,您可以获得所有值:
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
。