我希望能够在下面根据变量名称选择字段时执行类似的操作。以下不起作用,如果不做一个大的 switch 语句,我就找不到解决方案。
var guidId = new Guid("");
var fieldName= "somefield";
var query =
from c in Financials
where c.GuidId == guidId
select **fieldName**;
他们是一种简单的方法吗?
谢谢奥斯汀
试试这个:
select c.GetType().GetProperty(fieldName).GetValue(c, null)
我在这个 SO question上找到了这个。如果我的答案由于某种原因在查询中不起作用,您可以select c
然后将其通过 SO 问题的答案中所示的方法。
注意:它返回一个object
,所以要小心!
你可以使用反射:
select c.GetType().GetProperty(fieldName).GetValue(c, null);
这确实是通过名称获取属性值的唯一方法。