I've found hashtables in VBNet as useful as the dictionary object.

For Example:

VB Code:
  1. '[i][size=1]initialize hash tables at the "form" level[/size][/i]
  2.     Public Export_Log_Fields As New Hashtable()
  3.     Public Export_Log_Mode As New Hashtable()
  4.     Public OUT_FIELD_TYPE As New Hashtable()
  5.     Public OUT_FIELD_LOC As New Hashtable()
  6.     Public OUT_TYPE_LOC_FIELD As New Hashtable()
  7.  
  8.     Public Sub INIT_HASHTABLE()
  9.         Export_Log_Fields.Add("total impressions printed", "total_impressions_printed")
  10.         Export_Log_Fields.Add("total sheets printed", "total_sheets_printed")
  11.         Export_Log_Fields.Add("total black only pages printed", "total_BW_imp_printed")
  12.         Export_Log_Fields.Add("total color pages printed", "total_Color_imp_printed")
  13. '[i][size=1]yadayadayada[/size][/i]
  14.  
  15.         Export_Log_Mode.Add("job status", "1")
  16.         Export_Log_Mode.Add("record status", "2")
  17.         Export_Log_Mode.Add("container id", "1")
  18.         Export_Log_Mode.Add("job id", "2")
  19.  
  20.  
  21.         OUT_FIELD_TYPE.Add("total_BW_imp_printed", "int")
  22.         OUT_FIELD_TYPE.Add("total_Color_imp_printed", "int")
  23.         OUT_FIELD_TYPE.Add("total_sheets_printed", "int")
  24. '[i][size=1]yadayadayada[/size][/i]
  25.         OUT_FIELD_TYPE.Add("page_range", "str")
  26.         OUT_FIELD_TYPE.Add("job_data_number", "str")
  27.         OUT_FIELD_TYPE.Add("job_queue", "str")
  28.         OUT_FIELD_TYPE.Add("sent_by", "str")
  29. '[i][size=1]yadayadayada[/size][/i]
  30.         OUT_FIELD_TYPE.Add("rip_started", "date")
  31.         OUT_FIELD_TYPE.Add("print_started", "date")
  32.         OUT_FIELD_TYPE.Add("date_submitted", "date")
  33. '[i][size=1]yadayadayada[/size][/i]
  34.  
  35. '[i][size=1]now the array index locations, 3 arrays of 3 types, int, string, date[/size][/i]
  36.         OUT_FIELD_LOC.Add("pages_ripped", "0")
  37.         OUT_FIELD_LOC.Add("rip_time", "1")
  38.         OUT_FIELD_LOC.Add("copies_requested", "2")
  39.         OUT_FIELD_LOC.Add("copies_printed", "3")
  40.         OUT_FIELD_LOC.Add("total_sheets_printed", "4")
  41. '[i][size=1]yadayadayada[/size][/i]
  42.         OUT_FIELD_LOC.Add("job_name", "0")
  43.         OUT_FIELD_LOC.Add("job_queue", "1")
  44.         OUT_FIELD_LOC.Add("sent_by", "2")
  45. '[i][size=1]yadayadayada[/size][/i]
  46.         OUT_FIELD_LOC.Add("date_submitted", "0")
  47.         OUT_FIELD_LOC.Add("rip_started", "1")
  48.         OUT_FIELD_LOC.Add("print_started", "2")
  49.         OUT_FIELD_LOC.Add("print_completed", "3")
  50. '[i][size=1]yadayadayada[/size][/i]
  51. '[i][size=1]now, indicate the output field name when looping thru the 3 arrays of varying type[/size][/i]
  52.         OUT_TYPE_LOC_FIELD.Add("str_0", "job_name")
  53.         OUT_TYPE_LOC_FIELD.Add("str_1", "job_queue")
  54.         OUT_TYPE_LOC_FIELD.Add("str_2", "sent_by")
  55. '[i][size=1]yadayadayada[/size][/i]
  56.         OUT_TYPE_LOC_FIELD.Add("int_0", "pages_ripped")
  57.         OUT_TYPE_LOC_FIELD.Add("int_1", "rip_time")
  58.         OUT_TYPE_LOC_FIELD.Add("int_2", "copies_requested")
  59. '[i][size=1]yadayadayada[/size][/i]
  60.         OUT_TYPE_LOC_FIELD.Add("date_0", "date_submitted")
  61.         OUT_TYPE_LOC_FIELD.Add("date_1", "rip_started")
  62.         OUT_TYPE_LOC_FIELD.Add("date_2", "print_started")
  63.         OUT_TYPE_LOC_FIELD.Add("date_3", "print_completed")
  64.  
  65.     End Sub



-Hope this helps!
-Lou