2013-10-30 54 views
2

(類似this questionLINQ - 訪問與列名稱的列作爲字符串參數

我有表稱之爲 '問題' 和 'FinalFigures':

問題(QuestionID,文本,FinalFiguresColumnName)
FinalFigures(FinalFigureID,TotalDays,TotalCost等,等等)

'FinalFiguresColumnName'會有像「TotalDays」,「TotalCost」等值。有沒有一種簡單的方法來循環一組問題,並有'文本「值保存到對應的列名上'FinalFigures'表?

即,而不是:

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

我需要:

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

回答

5

您可以使用一點反射的由酒店的字符串名稱來獲得屬性值,而不是直接訪問它。

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

要設置該值,只需調用SetValue();

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

該技術可以設置值以及獲取值嗎? – user982119

+0

@ user982119是的!請看我的更新:) –

相關問題