LINQ - 使用列名作为字符串参数访问列

时间:2013-10-30 14:47:50

标签: c# sql linq

(类似于this question

我有名为'Questions'和'FinalFigures'的表格:

问题(QuestionID,Text,FinalFiguresColumnName)
FinalFigures(FinalFigureID,TotalDays,TotalCost等)

'FinalFiguresColumnName'将具有“TotalDays”,“TotalCost”等值。是否有一种简单的方法可以循环查看一组问题,并将'Text'值保存到'FinalFigures'上的相应列名称中表

IE中。而不是:

var item = new FinalFigure();
item.TotalDays = "x";

我需要:

var item = new FinalFigure();
// access the column 'TotalDays' with its name as a string, not a property

1 个答案:

答案 0 :(得分:5)

您可以使用一些反射来通过属性的字符串名称获取属性值,而不是直接访问它。

var value = (int)item.GetType().GetProperty("TotalDays").GetValue(item);

要设置该值,只需调用SetValue();

item.GetType().GetProperty("TotalDays").SetValue(item, value);