找不到對此的任何幫助,而且Similar Questions
stackoverflow建議在編寫此提議時也沒有幫助。在迭代列表(T)時爲屬性賦值Value
我想設置多個屬性的值,同時迭代一個For i = 0
循環,同時使屬性和值都在列表中,我試圖使用For循環的索引來選擇價值和財產。
我到目前爲止所嘗試的是儘管減少了這個問題,但它並沒有設置任何值屬性(S)它只是存儲在列表mPropList
本身,我需要存儲值屬性(或沼澤標準變量,但我寧願地產(S))
Public Class IDC
Private mPropList As new List(Of Object)From {pID, pCat, pNum, pVer}
Private mFieldList as New List(Of String) From {"ID", "Cat", "Num", "Ver"}
Friend Property pID() As String
Get
Return mID
End Get
Set(value As String) 'Same setup for the other Properties
mID = value
End Set
End Property
...
Sub New()
For i = 0 To mFieldList.Count - 1
mPropList(i) = mFieldList(i)
Next
End Sub
End Class
如果我想只有從mPropList
取值,但我需要從pID,pCat...
Output:
List Values:
mPropList(0) = ID
mPropList(1) = Cat
mPropList(2) = Num
mPropList(3) = Ver
Property Values:
pID = Nothing
pCat = Nothing
pNum = Nothing
pVer = Nothing
I希望我已經正確地解釋了這一點,並沒有將上面的代碼削減得太多而且破壞了它。我似乎無法找到直接的答案,也不希望創建'另一個'類來管理這個或創建更多的代碼。但如果另一個班級是唯一的方式,我想我別無選擇。
但是,如果上述想法可以工作,我在我的代碼中有其他幾個地方我可以應用這個,所以手指交叉。
任何幫助將是很好的。
編輯:採用New List(Of String) From {"ID", "Cat", "Num", "Ver"}
是隻顯示值是「可」出現在列表中,實際上是由接入OLEDB讀取命令填充。
EDIT2:它更多的是「能不能做到」的好奇心,「要那樣」,因爲我是新我試圖嘗試並找到學習的希望做事的方式不同..
您可以使用反射但似乎是一個奇怪的要求。在大多數情況下,有更好的方法。你爲什麼需要這個?如果您有相關信息的列表,爲什麼不使用該列表。或者,也許:使用「Dictionary(Of String,String)」。關鍵是f.e. 'ID'。 –
從{「ID」,「Cat」,「Num」,「Ver」}'新列表(字符串)的使用僅顯示*'可能'*在列表中的值,實際上已填充通過Access OLEDB讀取命令。 此外,我不熟悉「反射」是什麼,所以我要查找。 – nora
但是,爲什麼不能從數據讀取器中選擇適當的列並將其分配給正確的屬性? –