2012-01-05 147 views
2

我有一個結構「xyz」,裏面有3個字符串對象。 「foo」「bar」和「abc」我想遍歷結構並比較對象的名稱。VB.NET遍歷結構的對象

Structure xyz 
    dim foo as string 
    dim bar as string 
    dim abc as string 
End Structure 

僞:

​​

這可能嗎?

+3

這是可能的,但很少(!)建議。相反,它通常是設計中的一個缺陷。告訴我們爲什麼你需要它,這樣我們可以給你最佳的建議。 – 2012-01-05 19:35:43

+0

......當然不是那樣寫的。你的結構是對象的集合嗎?所有的對象是否都有'Name'屬性? – 2012-01-05 19:38:10

+0

@Konrad Rudolph我有一個約50個字符串的結構,其名稱對應於數據表中的列標題。我發送一個數據行到一個函數,該函數需要將各列的值耦合到結構中的字符串。有沒有更好的方法來解決這個問題? Jeremy Holovacs不,這是一個字符串集合 – Theveloper 2012-01-05 19:38:22

回答

1

如果這只是一次性的事情,您可能會更容易地使用字典來代替,但如果您更願意保留結構,則可以使用反射來完成此操作。

這個小小的代碼片段將在StringBuilder中爲您列出每個結構成員。

Dim sbOutput As New System.Text.StringBuilder 
Dim t As Type = GetType(xyz) 
For Each p As System.Reflection.FieldInfo In t.GetFields() 
    sbOutput.AppendLine(p.Name) 
Next