Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コメント

コメントの投稿

コメント

管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://hachisue.blog65.fc2.com/tb.php/187-1cdfed62
この記事にトラックバックする(FC2ブログユーザー)

配列(Arrayクラス) と ArrayList ・・・

可変長のデータを扱う方法として、
 ・動的配列
 ・ArrayListクラス
を比較すると、

(その他に、DataTableクラスもあるけれど、
 DataTableクラスは、どちらかと言えばデータベースが目的なので省略。
 ArrayListクラスは、敢えて言えば、
 DataTableクラスと動的配列との中間的な使い方ができる)

ArrayListは、異なるデータ型を扱えたり、
大量のデータでは処理速度が速い など
の利点がある。
配列を ReDim で要素数を変えると、配列そのものを構築し直すが、
ArrayList は、ポインタを追加するだけで済む。

例えが悪いかもしれないが、
文字列の連結における、「"&"演算子」 と 「StringBuilderクラス」 の関係に
似ているかもしれない。

尚、
ブジェクトをArrayListに格納する場合に注意する事がある。
同じオブジェクトで値が異なるインスタンスを追加したい場合、ArrayListに追加するオブジェクトは個別のインスタンスである必要がある。これは、オブジェクトをインスタンス化する仕組みに関係しており、インスタンスの参照は、保管場所を参照しているだけである。そのため、同じインスタンスに対し、別の値を設定してしまうとArrayListに設定したインスタンスの指し示す保管場所の値が変更されてしまうため、ArrayListの値が全て同じになってしまう。
らしいです。(詳しくはわかりませんが)

-----------------------
ArrayList を 配列に変換するには、CopyTo を使って、

Dim al = New ArrayList({"X", "Y", "Z"})
Dim sdim(al.Count) As String

' 配列 sdim へコピー
al.CopyTo(sdim)

For Each item As String In sdim
Console.WriteLine(item)
Next

てな事もできます。

---------------------------
ところで、配列は、「Array」 という特殊なクラスで、
"クラス"と言うからには、プロパティやメッソド と言ったメンバーが存在します。
それの利用した例は、
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard27.htm
を参考に。
関連して "コレクション"については、
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard28.htm
を参考に。

コメント

コメントの投稿

コメント

管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://hachisue.blog65.fc2.com/tb.php/187-1cdfed62
この記事にトラックバックする(FC2ブログユーザー)

Appendix

検索フォーム

プロフィール

hachisue

Author : hachisue
自作PCをこよなく愛する管理人です

最新記事

最新コメント

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。