问题描述
List<Person>list=newList<Person>(){newPerson(){Name="张三",Age=25},newPerson(){Name="李四",Age=40}};varentity=frompinlistselectnew{p,sex="男"};entity得到的数据是[{"p":{"Age":25,"Name":"张三"},"sex":"男"},{"p":{"Age":40,"Name":"李四"},"sex":"男"}]想要的效果是[{"Age":25,"Name":"张三","sex":"男"},{"Age":40,"Name":"李四","sex":"男"}]在不知道person属性的情况下怎么得到这样的效果
解决方案
解决方案二:
varentity=frompinlistselectnew{Age=p.Age,Name=p.Name,sex="男"};
解决方案三:
引用1楼xdashewan的回复:
varentity=frompinlistselectnew{Age=p.Age,Name=p.Name,sex="男"};
不知道有Age、name属性的情况下,怎么得到?
解决方案四:
引用2楼gb19900526的回复:
不知道有Age、name属性的情况下,怎么得到?
反射获取Person类的属性
解决方案五:
引用3楼xdashewan的回复:
Quote: 引用2楼gb19900526的回复:
不知道有Age、name属性的情况下,怎么得到?反射获取Person类的属性
能给个实例方法吗
解决方案六:
引用4楼gb19900526的回复:
能给个实例方法吗
用dynamiclinq可能可以解决,但selectnew里我也没试验过,能不能你还得自己试验下,只能给你两个帖子参考下http://stackoverflow.com/questions/1465700/system-linq-dynamic-select-new-into-a-listt-or-any-other-enumerablhttp://www.cnblogs.com/daviddai/archive/2013/03/09/2952087.html
解决方案七:
Person.getType().getProperties()
解决方案八:
Person有Sex这个属性吗?
解决方案九:
引用6楼u013315639的回复:
Person.getType().getProperties()
varentity=frompinlistselectnew{p.getType().getProperties(),sex="男"};无效的匿名类型成员声明符。匿名类型成员必须使用赋值、简单名称或成员访问来声明。在select里面用不了
解决方案十:
引用7楼starfd的回复:
Person有Sex这个属性吗?
sex是追加的属性
解决方案十一:
继承Person这个,子类添加一个sex属性classPerson{publicstringName{get;set;}publicintAge{get;set;}}classs_Person:Person{publicstringsex{get;set;}}List<Person>list=newList<Person>(){newPerson(){Name="张三",Age=25},newPerson(){Name="李四",Age=40}};varentity=frompinlistselectnews_Person{Name=p.Name,Age=p.Age,sex="男"};
解决方案十二:
用dynamic类型,不需要知道属性