转换匿名类型列出

问题描述 投票:0回答:1

我有一组从其中包含许多领域(最多50个)的数据库转储匿名对象。

例如:

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

我想有这样的数据如下输出

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

什么是体现了正确的方法是什么?

编辑:我想保持最初的命令

c# reflection anonymous-types
1个回答
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();

你加入,你想保持在结果列表中属性的排序。这是不可能的 - 想想型轿车的对象:

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

这不是一辆车像不同

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

当特性被切换。恕我直言,一个anoymous类型是什么不同。因此,导出为CSV文件时,你的属性的排序不应该有任何区别 - 这种情况下,你可能应该看看Dictionary否则。

© www.soinside.com 2019 - 2024. All rights reserved.