2

我希望能够在下面根据变量名称选择字段时执行类似的操作。以下不起作用,如果不做一个大的 switch 语句,我就找不到解决方案。

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

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

他们是一种简单的方法吗?

谢谢奥斯汀

4

2 回答 2

2

试试这个:

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

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

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

于 2013-02-28T16:33:28.460 回答
0

你可以使用反射:

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

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

于 2013-02-28T16:34:01.510 回答