匿名对象

今天做一个功能,需要从后台返回数据(数组)给前端。数组里面的每一个对象里面都有好几个属性,但是又不想因为这几个属性专门创建一个Model Class。所以就用上了匿名对象。

前端需要的数据格式类似

[
    {firstname: "harry", lastname: "huang", sex: "m", age: 30},
    {firstname: "james", lastname: "chen", sex: "m", age: 35}   
]

在后端查询到数据后,用匿名对象进行数据组织:

List<object> personInfo = new List<object>();
foreach(DataRow row in dt.Rows)
{
    object person = new {
        firstname = row["firstname"],
        lastname = row["lastname"],
        sex = row["sex"],
        age = row["age"]
    }
    personInfo.Add(person);
}
return personInfo

这样返回到前端这个数据就可以直接使用了,数据格式跟第一段代码的一样。

本来还想在后台对生成的匿名对象的值进行修改,发现匿名对象的属性是只读的。。只能在生成之前提前把可能变更的数据准备好了。

匿名对象在后台进行遍历的方法如下:

foreach(dynamic obj in personInfo)
{
    var firstName = obj.firstname;
    var lastName = obj.lastname;
}

 

posted @ 2017-07-06 20:03  herohh  阅读(216)  评论(0编辑  收藏  举报