2010-12-13 29 views
0

這與C#: How do i assign many variables with an integer(i) in for loop?有很大關係。分配給類似的命名實體屬性

基本上,我有一個實體,具有屬性Category1Results,Category2Results,Category3Results ...等等Category60Results。還有大約15個其他屬性。這些映射到數據庫表。

有沒有一種明智的方式來分配給這些?

一個循環看起來可能有幫助,其中(例如)名爲Entity.Category + i + Result的屬性被分配給了,但我不知道如何實現這一點。

有什麼建議嗎?

回答

0

你可以用反射來做到這一點。看一下this的帖子,Jon Skeet提供了一個分配對象屬性的解決方案。

for(int i = 1; i <= 60; i++) 
{ 
    SetProperty(entity, "Category"+i+"Result", valueYouWantToAssign) 
} 

Here是循環通過對象屬性的另一個示例。

PropertyInfo[] properties = typeof(MyClass).GetProperties(); 
foreach(PropertyInfo property in properties) 
{ 
    property.SetValue(instanceOfMyClass, attribute.DataValue, null); 
} 
+0

非常感謝。我已經採用了第一種方法,效果很好。我會認爲後一種選擇更加優雅,但它需要在我的代碼中修改一些,我現在只是尋找一個快速修復。再次感謝! – Rich 2010-12-13 14:13:50

相關問題