- PR -

VB.net : indexが0から始まるコレクションってありますか?

投稿者投稿内容
ジブ
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 135
投稿日時: 2005-10-19 23:07
VB.netではCollectionのindexは1から始まりますが
どこかに0から始まるコレクションはありませんでしょうか?

IlistをImplementsするかCollectionBaseを継承するかしていますが
一時的に使うコレクションの場合まぎらわしくて。

アプリケーション共通のクラスライブラリに入れてしまえばそれで済むんですが
あまりに情けなく、きっとどっかに転がっているんではないか、または
なにかの設定でCollectionIndexBase=0みたいなことができるのではないだろうかと恥をしのんで質問する次第です。

よろしくお願いいたします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-10-19 23:38
NAL-6295です。

例えば、
System.Collections名前空間にある、クラスで代用するわけにはいかないのでしょうか。
ArrayList,SortedList,HashTable etc...
これらは、0から始まっていたと思います。
要素を取り出す際にIndexを利用するだけなら、ArrayListで充分かもしれません。
ジブ
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 135
投稿日時: 2005-10-19 23:51
NAL-6295さん、ありがとうございます。

ArrayListですね。十分使えそうです。

無知とは恐ろしいものですね。お恥ずかしい。

とても助かりました。ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-20 08:47
引用:

ジブさんの書き込み (2005-10-19 23:07) より:

VB.netではCollectionのindexは1から始まりますが
どこかに0から始まるコレクションはありませんでしょうか?


??? 1 から始まるものって何が該当するんでしょうか...

たとえば、Control.ControlsCollection では普通に 0 からだと思うのですが...

コード:

MessageBox.Show(Me.Controls(0).Name.ToString())


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-10-20 09:02
じゃんぬねっとさん、お早うございます。

引用:

??? 1 から始まるものって何が該当するんでしょうか...


Microsoft.VisualBasic.Collection のことですね。
VB6 以前の Collection との互換のため(?)に設けられたヤツです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-20 09:09
おはようございます、きくちゃん さん。

引用:

きくちゃんさんの書き込み (2005-10-20 09:02) より:

Microsoft.VisualBasic.Collection のことですね。


あちゃ〜そういうことでしたか... orz
だから、「VB.NET」と局所的な表現をしてるんですね...

Microsoft.VisualBasic 名前空間配下は使ったことがないので、
本当にピンとこなかったんですよね...

引用:

VB6 以前の Collection との互換のため(?)に設けられたヤツです。


ええ、互換のためですね。
アップグレード ウィザードを見る限りそう思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-10-20 09:36
そういえば、VB6.0以前はOption Baseという機能がありましたね。
私はCとかで作るほうが多かったから、おそらく全部0基底で作ってましたが…。
Dim a(3 To 5)も、.NETでは配列の使い方を変える以外どうしようもないのかな?
(個人的には使ったことないですが)
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-20 09:57
引用:

mioさんの書き込み (2005-10-20 09:36) より:

Dim a(3 To 5)も、.NETでは配列の使い方を変える以外どうしようもないのかな?
(個人的には使ったことないですが)


これは、互換性が強まった VB2005 でもないですね。

配列の宣言に関してですが、VB2005 では、
(0 To 512) のような書き方ができるようになりました。
しかし、下限値は 0 固定なので (256 To 512) のようには書けません。
ただ、どこからどこまでかを明確にするために採用しているのだそうです。
あまり意味はないですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)