VB.netでのプログラミングで、構造体の中身を、上から順番にString配列に入れ込みたい場合など、今は、このように書いてしまっています。
Visual
1Public a IniList 2 Dim a1 As String 3 Dim a2 As String 4 Dim a4 As String 5End Structure 6 7Dim saAs b 8Dim b(3) As String 9Dim ii As Integer 10 11sa.a1 = "1" 12sa.a2 = "2" 13sa.a3 = "3" 14 15b(0) = sa.a1 16b(1) = sa.a2 17b(2) = sa.a3 18
これをなんとかForループなどを使って、
Public a IniList Dim a1 As String Dim a2 As String Dim a4 As String End Structure Dim saAs b Dim b(3) As String Dim ii As Integer sa.a1 = "1" sa.a2 = "2" sa.a3 = "3" For ii To 2 b(ii) = sa(ii) Next ii
構造体の中身をLoopで入れるなんてことは、出来ないものなのでしょうか?
もし上記のような事する場合は、構造体ではなくハッシュテーブルなどでしょうか?
ただ、ハッシュテーブルの場合は、項目名と値を結びつけてセットし、中身をForループで一覧で取り出すことはできたのですが、例えば、
Dim a As New Hashtable() Dim b(3) As String Dim ii As Integer a.Add("b", "1") a.Add("a", "2") a.Add("c", "3") ii = 0 For Each key As String In a.Keys b(ii) = a(key) ii = ii + 1 Next
このようにやると、結果として、Addした順番に
b(0) = "1" b(1) = "2" b(2) = "3"
と出てくれればいいのですが、この場合の結果は、ハッシュテーブル内で並び替えが行われるようで、
b(0) = "2" b(1) = "1" b(2) = "3"
と出てしまいます。
また、String配列に入れるために、わざわざiiを自分でインクリメントしないといけないのも、なんだかなぁという感じです。
こんな場合、何かいい方法はないものでしょうか?
理想は、構造体の中身を、構造体に定義した順番でループで入れ込む方法、またはハッシュテーブルの値をAddした順番に入れ込む方法です。
プロの方は、このような場合、どのようにしているものなのでしょうか?
回答1件
あなたの回答
tips
プレビュー