- ベストアンサー
idから名称を取ったり、名称からidを取るクラス
idと値を持ったリストがあります 例えば 100 りんご 200 みかん 300 バナナ といった具合です。 この時、インデックス0の、item(0) item(1) でコード100 値りんご は取れると思いますが、 インデックスをベースに探すのではなく、 「コード100の値は何か?」や「りんごのコードは何か?」を取得したいです。 今はhashtableなどを、index 0 からindexの最後までをループ処理で検索する処理で実現していますが、最初からそういうメソッドを持ったクラスはないものでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VB.NET ならハッシュテーブルの使い方が間違ってる。 VB6、VBAで hashtable という配列に入れているなら、ループ処理で検索しかない。
その他の回答 (2)
- n-jun
- ベストアンサー率33% (959/2873)
検証していないけど、データテーブルに放り込んだら 出来るんじゃないのかな? そう言うのはダメなのかな?
お礼
ありがとうございます。 自分もそうしてました。 データテーブルを拡張して便利にしたクラスを作っていたのですが、そもそも最初から自分が求めているメソッドを持ったクラスがあるのでは?と思っての質問でした。
- x-1919
- ベストアンサー率52% (91/173)
なんか hashtable の使い方を間違ってない? 質問文で言うところの "コード" は質問文で言うところの "インデックス" として使えるんじゃないの? hashtable は key と value のペアで、コレクションを通じて key に重複がなければよい。 key = 100, value = "りんご" key = 200, value = "みかん" key = 300, value = "バナナ" てな感じで key が重複しなければ ok だけど。 そうすれば key で検索する場合は一発で検索可能。 ただし value は重複することもあるので一発で検索することはできず、独自にループで検索し、最初に見つかったペアを返すのか、見つかったペアのコレクションで返すのか、のように戻し方を自分で決めて自分で作りこむ。 hashtable を使うよりも dictionary のほうが型を指定できるので手間が掛からないが、おおむね使い方は一緒。
お礼
ありがとうございます。 使い方が間違ってました。。
お礼
ありがとうございます。 教えて頂いたURLには具体的なコードがあり大変助かりました!