Back to Top

プログラムの覚書

Category: VB構文・その他

VB.NETハッシュテーブル(連想配列)

ハッシュテーブルは、キーと値を保持しているコレクションです。

値は文字列型・数値型・オブジェクト型の様々なデータを保持できます。

キーは文字列扱いで、値はオブジェクト扱いなので値を取り出すときはキャストします。

使用するには、Imports System.Collectionsを追加します。

項目を追加する

Dim hTbl As New Hashtable()

'文字列型の場合
hTbl.Add("H", "平成")
hTbl.Add("S", "昭和")
hTbl.Add("M", "明治")
hTbl.Add("T", "大正")


'数値型の場合
hTbl.Add("H", 100)
hTbl.Add("S", 200)
hTbl.Add("M", 300)
hTbl.Add("T", 400)

キーや値の存在チェック

ContainsValueメソッドおよびContainsKeyメソッド、存在チェックをする。

'値が存在すれば、Trueを、存在しなければ、Falseを返します。
If hTbl.ContainsValue("昭和") Then
    MessageBox.Show("値は存在します")
End If

'値が存在すれば、Trueを、存在しなければ、Falseを返します。
If hTbl.ContainsKey("H") Then
    MessageBox.Show("キーは存在します")
End If

テーブル内の値の取得する

値取得にはキャストをします。

文字列の場合
Dim str1 As String = CStr(hTbl("H"))
または
Dim str1 As String = CType(hTbl(H"), String)

数値の場合
Dim val1 As Integer = CInt(hTbl("H"))
または
Dim val1 As Integer = CType(hTbl("H"), Integer)

テーブルのループ

Dim hTbl As New Hashtable()

'文字列型
hTbl.Add("H", "平成")
hTbl.Add("S", "昭和")
hTbl.Add("M", "明治")
hTbl.Add("T", "大正")

Dim s As String = ""

'キーによるループ
For Each key As String In hTbl.Keys
    s &= String.Format("{0}:{1}", key, hTbl(key)) & System.Environment.NewLine
Next
MessageBox.Show(s)

'値によるループ
For Each val As String In hTbl.Values
    s &= String.Format("{0}", val) & System.Environment.NewLine
Next
MessageBox.Show(s)

'テーブルのループ
For Each de As DictionaryEntry In hTbl
    s &= String.Format("{0}:{1}", de.Key, de.Value) & System.Environment.NewLine
Next
MessageBox.Show(s)

 

VB.NET比較文

IF 文の書き方

If 条件式 Then
  [条件式が成り立っている時に実行する]
Else
  [条件式が成り立っていない時に実行する]
End If
If 条件式1 Then
  [条件式1が成り立っている時に実行する]
ElseIf 条件式2 Then
  [条件式2が成り立っている時に実行する]
ElseIf 条件式3 Then
  [条件式3が成り立っている時に実行する]
    :
    :
Else
  [どの条件式にも当てはまらない時に実行する]
End If
Dim val As Integer = 3

If val = 1 Then
    [valが1の場合]
ElseIf val = 2 OrElse val = 3 Then
    [valが2または3の場合]
ElseIf val = 4 Then
    [valが4の場合]
Else
    [それ以外の場合]
End If

・接続文にはOr OrElse And AndAlso がある

Select Case文の書き方

Select Case 元となる式
Case 比較する式1
    [「元となる式」と「比較する式1」が一致する場合の処理]
Case 比較する式2
    [「元となる式」と「比較する式2」が一致する場合の処理]
    :
    :
Case Else
    [元となる式」がどの式とも一致しなかった場合の処理]
End Select
Dim val As Integer = 3

Select val
  Case 1
    [valが1の場合]
  Case 2, 3
    [valが2または3の場合]
  Case 4
    [valが4の場合]
  Case Else
    [それ以外の場合]
End Select