2010/11/29(Mon) 09:08:06 編集(投稿者)
■No55378 (Azulean さん) に返信
>
> List(Of T) に追加するとき、List(Of T) から参照するときにコピーされます。
> この挙動からまったく問題がないとは言えないと思っています。(程度の差はありますが)
確かにそこは気を付けるべきとこですね。失礼しましたmm
そして私が1つ勘違いしていたとこがありましたので、出来ない例を載せておきます。
Dim lst As New List(Of stKojin)
lst.Add(New stKojin() With {.name = "a", .addr = "addr1", .age = 10})
lst.Add(New stKojin() With {.name = "b", .addr = "addr2", .age = 12})
lst.Add(New stKojin() With {.name = "c", .addr = "addr3", .age = 30})
lst(1).name = "b1" '<--- これは出来ない
Dim ary = new stKojin() { _
New stKojin() With {.name = "a", .addr = "addr1", .age = 10}, _
New stKojin() With {.name = "b", .addr = "addr2", .age = 12}, _
New stKojin() With {.name = "c", .addr = "addr3", .age = 30}}
ary(1).name = "b1" '<--- これは出来る
ということで、listを使用する場合構造体のコピーをしないと書換えが出来ないので
書換えが発生し構造体が大きくなる場合はclassにした方が良さそうです。
junさんの提示した内容ではデータ量が多くなければ大丈夫かなとは思います。