Linq c#基于变量查询

时间:2013-02-28 16:29:51

标签: c# linq

我希望能够在下面做一些基于变量名称选择字段的内容。以下不起作用,我无法找到一个解决方案,没有做一个大的switch语句。

var guidId = new Guid("");
var fieldName= "somefield";

var query =
 from c in Financials
 where c.GuidId == guidId 
 select **fieldName**;

这是一种简单的方法吗?

感谢奥斯汀

2 个答案:

答案 0 :(得分:2)

试试这个:

select c.GetType().GetProperty(fieldName).GetValue(c, null)

我在this SO question找到了这个。如果我的答案在查询中由于某种原因不起作用,您只需select c,然后只需将其通过SO问题的答案中所示的方法。

注意:它会返回object,所以要小心!

答案 1 :(得分:0)

你可以使用反射:

select c.GetType().GetProperty(fieldName).GetValue(c, null);

这是通过名称获取属性值的唯一方法。