反射取属性的方法如何写Linq表达式

禁用F3 2016-01-29 10:17:45

public static dynamic ToTableList<T>(this IEnumerable<T> tableData)
{
string key ="sss";
IEnumerable<Subject> d = null;
var temp = d.Where(su => su.Name.Contains(key)); //想用反射写出这个

tableData.Where(Reflection=>Reflection.GetType(). //这里没有属性如何处理呢?想达到上面Contains查询

...全文
147 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
禁用F3 2016-01-29
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
GetType()没少打字?前面的su呢? 然后Name是属性还是字段? 你可以改成 { return xxx; } 这样的写法,这样你就可以通过console之类的来输出内容看到底怎么回事

  List<T> listFiltered = new List<T>();
listFiltered.AddRange(tableData.Where(re => re.GetType().GetProperty("Name").GetValue(re).ToString().Contains(key)));
没有少打,只是复制复少了。 是属性。查询出来就是没有值。是不是 lambda 不支持反射呢?
  • 打赏
  • 举报
回复
GetType()没少打字?前面的su呢? 然后Name是属性还是字段? 你可以改成 { return xxx; } 这样的写法,这样你就可以通过console之类的来输出内容看到底怎么回事
禁用F3 2016-01-29
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
su.GetType().GetProperty("Name").GetValue(su).ToString().Contains(key)

tableData.Where(su=> GetType().GetProperty("Name").GetValue(su).ToString().Contains(key))
//这样写查询不到任何值。
  • 打赏
  • 举报
回复
su.GetType().GetProperty("Name").GetValue(su).ToString().Contains(key)
xdashewan 2016-01-29
  • 打赏
  • 举报
回复
不要这个那个的,想取什么东西用文字描述
禁用F3 2016-01-29
  • 打赏
  • 举报
回复
引用 8 楼 starfd 的回复:
然后再试下.GetValue(re),这步会怎么样,这里re用你的tableData任意一个索引的值

 var temp =typeof(T).GetProperty("Name").GetValue(//这样没法试re呀

var temp1 =tableData.Where(re=>re.GetType().GetProperty("Name").GetValue(re) != null); //这样是有数据的

  var temp2 =tableData.Where(re=>re.GetType().GetProperty("Name").GetValue(re).ToString().Contains(key)); //这样就没数据
key查询的关键词集合里面是存在有这样的关键词数据的。

  • 打赏
  • 举报
回复
然后再试下.GetValue(re),这步会怎么样,这里re用你的tableData任意一个索引的值
禁用F3 2016-01-29
  • 打赏
  • 举报
回复
引用 6 楼 starfd 的回复:
不可能,支持反射的
你先试下 typeof(T).GetProperty("Name")这样单独看有没有得到值
然后你的Name应该是String类型吧

  • 打赏
  • 举报
回复
不可能,支持反射的 你先试下 typeof(T).GetProperty("Name")这样单独看有没有得到值 然后你的Name应该是String类型吧

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧