position in array using a string

  • Thread starter Thread starter Tim
  • Start date Start date
T

Tim

hi all,

not quite sure how to ask this, but here goes...

I have an array of values

a(0)="SMITH"
a(1)="JOHN"

I need to be able to reference each element using a string...

a("lastname") should return "SMITH"
a("firstname") should return "JOHN"

in much the same way as referencing a control in a collection of
controls, or an item in a collection of items.

any clues on how to achieve this?

(of course, everything is dynamic. I don't know that "lastname" and
"firstname" even exist before runtime)

cheers
 
Tim said:
hi all,

not quite sure how to ask this, but here goes...

I have an array of values

a(0)="SMITH"
a(1)="JOHN"

I need to be able to reference each element using a string...

a("lastname") should return "SMITH"
a("firstname") should return "JOHN"

in much the same way as referencing a control in a collection of
controls, or an item in a collection of items.

any clues on how to achieve this?

The general name for the type of collection that achieves this is
"dictionary". A real-world dictionary maps 'words' to 'meanings' - in
..NET we say a dictionary maps 'keys' to 'values'. Both keys and values
can be of any type you like. Here both keys and values would be of type
String.

In 1.x (VB2002/3) you could just use a Hashtable, or to enforce strict
typing derive your own class from DictionaryBase (both in
System.Collections).

In 2.0 (VB2005) use Dictionary(Of String,String) from
System.Collections.Generic.
 
Tim,

As alternative not so nice done

\\\
Public Class Test
Public Shared Sub Main()
Dim a As New List(Of names)
a.Add(New names("John", "Smith"))
MessageBox.Show(a(0).mFirstname & " " & a(0).mLastname)
End Sub
End Class
Public Class names
Public mLastname As String 'should be as properties
Public mFirstname As String 'should be as properties
Public Sub New(ByVal firstname As String, _
ByVal lastname As String)
mLastname = lastname
mFirstname = firstname
End Sub
End Class
///

I hope this helps,

Cor
 
Back
Top