我有一组从其中包含许多领域(最多50个)的数据库转储匿名对象。
例如:
var anonymousData = new
{
Z = "2",
B = "4",
C = "3",
D = 5
};
我想有这样的数据如下输出
List<object> allObjects ... with { "2", "4", "3", 5 };
什么是体现了正确的方法是什么?
编辑:我想保持最初的命令
通过反射,你可以得到所有的值:
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();
你加入,你想保持在结果列表中属性的排序。这是不可能的 - 想想型轿车的对象:
new MyCar { Id = 3, Color= "red"};
这不是一辆车像不同
new MyCar { Color= "red", Id = 3};
当特性被切换。恕我直言,一个anoymous类型是什么不同。因此,导出为CSV文件时,你的属性的排序不应该有任何区别 - 这种情况下,你可能应该看看Dictionary
否则。