![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもお世話になっております。
VB2003でHashTableのような感じでキーを2つつけられるコレクションを探しています。
普通のHashTable(キーが1つ)
社員コード(キー) 名前(値)
----------------------
000001 あいうえお
000002 かきくけこ
000003 さしすせそ
これを…
今回探しているコレクション(キーが2つ)
会社名 社員コード 名前
-------------------------------
会社A 0000001 あいうえお
会社B 0000001 たちつてと
会社A 0000002 かきくけこ
会社A 0000003 さしすせそ
会社B 0000002 なにぬねの
というようにしたいのですが、
このようにキーが2つで値を取り出せるコレクションはあるのでしょうか?
それとも自分でコレクションを作らないとダメなのでしょうか?
もし作らないといけないようでしたら、参考にソースなど提示していただけるとありがたいです。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
普通こういう時は、会社名と社員コードを文字列連結して、キーとして使いますねぇ。
このとき、会社名の末尾にも社員コードの先頭にも絶対に使われない文字を使って連結すると間違いがないでしょう。例)
hash.Add(companyName + vbTab + userCode, userName)
以下蛇足。
こういう事を自力で考えだせるかどうかが、今後業界でやっていく上で
大事だと思うので、質問するのも良いですが、自力で工夫する事も検討してみてください。長い目で見た時に自分の力になっていくと思いますよ。頑張ってください。
No.1
- 回答日時:
ん~ どのような使い方をされるんでしょう?
会社A 0000001 や 会社B 0000002 などのキーがワンセットでなら既存のCollectionクラスでいいでしょう
社員コード、会社名 など個別でキーとして使いたいのであれば
自作のCollectionをということになりそうです
# たぶん後者でしょうね
コレクションにこだわりがないのであれば DataSet/DataTableなどを使うのもひとつの方法でしょう
XML形式のファイルでデータを管理してDataSetのReadXml/WriteXmlで読み込み/保存が出来ます
DataSetのTablesからデータ本体をDataTableに取り出せます
DataTableのSelectメソッドで 任意の列に対してのフィルターもかけられます
' データの取り込み
dim ds as new DataSet
dim tbl as DataTable
Try
ds.ReadXml( "sample.xml" )
tbl = ds.Tables(0)
catch ex exception
tbl = new DataTable
tbl.columns.add("会社名")
tbl.Columns.add("社員コード")
tbl.columns.add("名前")
dim row as DataRow
row = tbl.NewRow
row("会社名") = "会社A"
row("社員コード") = "0000001"
row("名前") = "あいうえお"
tbl.rows.add( row )
' ここから
row = tbl.NewRow
row("会社名") = "会社B"
row("社員コード") = "0000001"
row("名前") = "かきくけこ"
tbl.rows.add( row )
' 必要な行数分繰り返す
ds.tables.add( tbl )
ds.WriteXml( "Sample.xml" )
end Try
' データの抽出
dim rows1() as DataRow
dim rows2() as DataRow
dim rows3() as DataRow
rows1 = tbl.Select("会社名='会社A'")
rows2 = tbl.Select("社員コード='0000001'")
rows3 = tbl.Select("会社名='会社A' AND 社員コード='0000001')
といった具合で ・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ノートパソコン 現在、家で使用しているパソコンの買い替えを検討してます。 使用中のパソコンはVAIOノートパソコンで 3 2022/06/26 07:30
- Windows 10 先日、windows10のパソコンが故障したので、修理出しました。この前戻ってきたのですが、回復キー 2 2022/07/05 17:00
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- 中古車 キーが車内にないのに閉めれない 2 2022/07/06 15:36
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- カラオケ カラオケのキー下げは負け組なのですか? 8 2023/02/20 05:58
- その他(家事・生活情報) 亡き人・親の形見の受け継ぎ 3 2022/12/20 16:32
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- 転職 転職活動についてご相談です。 25歳です。転職回数が4回ほどあります。(正社員2回、契約社員1回、派 7 2023/07/11 21:30
- その他(暮らし・生活・行事) 人が住んでいるのに空き家と言われ、音も夜中うるさい 1 2023/07/08 16:14
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
会社に来ず、連絡がつかない。...
-
務め先の問い合わせフォームか...
-
出戻り社員。ブーメラン社員っ...
-
猫の体調が悪いので遅刻or早退...
-
清掃パートでの失敗・・ 30代主...
-
他人のミスやプライベートを言...
-
退職した人が勝手に社内に立ち...
-
始業1分前に来るけど遅刻をしな...
-
NHC株式会社は、恐ろしい会社?
-
盗聴器
-
入社したばかりの結婚式(呼ば...
-
ペン類がすぐになくなる。改善...
-
これは横領?会社で福利厚生目...
-
誰かが休めば仕事が回らない会...
-
せこい客先の社員に困ってます...
-
社内盗聴は違法ですか?
-
キーが2つのHashTable
-
仕事ができる人間は追い出す風...
-
上場企業でホワイトってあるん...
-
ビッグモーターの「街路樹枯ら...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
会社に来ず、連絡がつかない。...
-
出戻り社員。ブーメラン社員っ...
-
務め先の問い合わせフォームか...
-
会社の強制親睦会からの脱退
-
退職した人が勝手に社内に立ち...
-
派遣4日目、心が折れそう
-
試用期間中にうつになったらク...
-
人のパソコンや机の上を勝手に...
-
始業1分前に来るけど遅刻をしな...
-
NHC株式会社は、恐ろしい会社?
-
前職場から戻って来てと言われ...
-
他人のミスやプライベートを言...
-
取引先からの礼金を受け取って...
-
チンピラ同然の社員への対応に...
-
忌引休暇について
-
猫の体調が悪いので遅刻or早退...
-
職場が汚い
-
5月13日にパート契約で仕事を始...
-
ペンやノートなど仕事で使用す...
-
障害者の方は暑がりが多い理由
おすすめ情報