如何将C#对象属性值转换为N十进制数组
我想像这样将我的对象属性值转换为数组。(此列表作为对象动态来自数据库。) 但我想以数组的形式发送响应,如下所示:如何将C#对象属性值转换为N十进制数组,c#,linq,asp.net-web-api,C#,Linq,Asp.net Web Api,我想像这样将我的对象属性值转换为数组。(此列表作为对象动态来自数据库。) 但我想以数组的形式发送响应,如下所示: [ { name:"john", age:25 }, { name:"bill", age:26 }, { name:"scott", age:27 } ] [ ["john", 25 ], [ "bill", 26 ], [ "scott", 27 ] ] 我的对象属性可能会根据请求进行更改 我需要为我的对象属性
[
{ name:"john", age:25 },
{ name:"bill", age:26 },
{ name:"scott", age:27 }
]
[
["john", 25 ],
[ "bill", 26 ],
[ "scott", 27 ]
]
我的对象属性可能会根据请求进行更改
我需要为我的对象属性值创建一个N十进制数组。有什么方法可以做到这一点吗?如果不知道属性的名称,则必须使用反射。例如:
var results = myobject.Select(o =>
o.GetType()
.GetProperties()
.Select(p => p.GetValue(o)));
但是,需要注意的是,由于您没有将属性的名称与值一起发送,这将导致一些歧义。例如,如果对象看起来像{age=15,shoeSize=10}
,那么您将发送[11,10]
。因此,消费服务需要明确地知道返回了什么
编辑:这里有一把小提琴展示了它的工作原理:它们真的是
对象吗?你没有实际类中的初始数据吗?它们是对象是的,不是标准的计算。如果属性是动态的,那么你将不得不求助于反射。是的,我不知道属性名称。myobject是我的列表吗?那么试试看,它给出的正是您要求的输出。关于什么?我的代码不会这样做,但无论您正在传递或正在接收它,都可能会这样做。对不起,我的错误。
var results = myobject.Select(o =>
o.GetType()
.GetProperties()
.Select(p => p.GetValue(o)));