How to define a 2-dimensional lookup array in VB.NET.

I have an array of static data that I use in VB6 to define the format and contents of a datagrid.  The code is shown below and works fine in VB6, but I don't know how to define this same array content in VB.NET.

Dim FldArray As Object

FldArray = Array( _
           Array("RecUPC", "UPC", 85, "L"), _
           Array("RecDescr", "Description", 140, "L"), _
           Array("RecQty", "Qty", 35, "R"), _
           Array("RecSysCost", "E1 Cost", 50, "R"), _
           Array("RecNewCost", "Invoice Cost", 55, "R"), _
           Array("RecRetail", "Retail", 50, "R"), _
           Array("RecExtCost", "Ext Cost", 60, "R"), _
           Array("RecError", "Errors", 125, "L"))

I then pass the FldArray object (array), the form name, and grid name to a procedure to format the grid.   For example,
.DataColumn.DataField = FldArray(i)(j)

Anyway, I can't seem to figure out how to define the array in .NET.
mdreedAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
ZhaolaiConnect With a Mentor Commented:
Try this:
Dim FldArray(,) As String

        FldArray = New String(7, 3) {{"RecUPC", "UPC", 85, "L"}, _
                   {"RecDescr", "Description", 140, "L"}, _
                   {"RecQty", "Qty", 35, "R"}, _
                   {"RecSysCost", "E1 Cost", 50, "R"}, _
                   {"RecNewCost", "Invoice Cost", 55, "R"}, _
                   {"RecRetail", "Retail", 50, "R"}, _
                   {"RecExtCost", "Ext Cost", 60, "R"}, _
                   {"RecError", "Errors", 125, "L"}}

Open in new window

0
 
mdreedAuthor Commented:
The definition you provided seems to be error free, but I need to see if it flows correctly to the called procedure.  Previously, FldArray argument was also declared as Object in the called procedure such as the following:

Public Sub Format_grid(ByVal MyForm As Form, ByVal FldArray As Object, ByVal MyGrid As C1.Win.C1TrueDBGrid.C1TrueDBGrid)

How should it be declared in the procedure and how should it be referenced in code in order to accommodate the VB6 syntax of .DataColumn.DataField = FldArray(i)(j) ?

0
 
ZhaolaiCommented:
You can change the FldArray declaration back to Object, but I believe it will be fine.
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
mdreedAuthor Commented:
When attempting 'If FldArray(cx)(0) = "" Then'

I get 'Attempted to operate on an array with the incorrect number of dimensions.'
0
 
ZhaolaiCommented:
Have you tried 'If FldArray(cx, 0) = "" Then'?
0
 
mdreedAuthor Commented:
That would make sense, wouldn't it . . .

Thanks for you help.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.