我希望能够在下面做一些基于变量名称选择字段的内容。以下不起作用,我无法找到一个解决方案,没有做一个大的switch语句。
var guidId = new Guid("");
var fieldName= "somefield";
var query =
from c in Financials
where c.GuidId == guidId
select **fieldName**;
这是一种简单的方法吗?
感谢奥斯汀
答案 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);
这是通过名称获取属性值的唯一方法。