By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
431,991 Members | 1,737 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 431,991 IT Pros & Developers. It's quick & easy.

2 dimensional array question

P: n/a
I need to store information in a 2 dimensional array. I understand ArrayList
only works for a single dimensional array, is that correct ?
So, I use the 2 dimensional array like in VB6. I pass the array into a
subroutine, and inside it I "Redim Preserve" the array to increase the
number of item in the array. I got the error "Redim statement requires an
array", but arr is an array. HOw can I fix this problem ? Or, how can I do
ArrayList for 2 dimensional array ?
THank you very much.

Private arr(COM_MAX, 0) As String
LoadArr(arr)

Sub LoadArr(ByRef arr As Array)
lNumComm = 0
For x = 1 to 1000
ReDim Preserve arr(COM_MAX, lNumComm)--->Redim statement requires an array
:
next
Nov 20 '06 #1
Share this Question
Share on Google+
6 Replies


P: n/a
"fniles" <fn****@pfmail.comwrote in message
news:Ol*************@TK2MSFTNGP02.phx.gbl...
>I need to store information in a 2 dimensional array. I understand
ArrayList only works for a single dimensional array, is that correct ?
So, I use the 2 dimensional array like in VB6. I pass the array into a
subroutine, and inside it I "Redim Preserve" the array to increase the
number of item in the array. I got the error "Redim statement requires an
array", but arr is an array. HOw can I fix this problem ? Or, how can I do
ArrayList for 2 dimensional array ?
THank you very much.

Private arr(COM_MAX, 0) As String
LoadArr(arr)

Sub LoadArr(ByRef arr As Array)
Pass it in the same way you define the array, eg
Sub LoadArr(ByRef arr As int(,))
BTW, redim preserve does a complete copy of every element in the array every
time it's called. In your loop that will mean half a million copies for each
column.

Michael
Nov 20 '06 #2

P: n/a
Michael C is right about the Redim Preserve. I wouldn't do that.
I'd use an arraylist or a generic list (depending on what version
of .Net you're using.)

Robin S.
---------------------------------
"Michael C" <no****@nospam.comwrote in message
news:un**************@TK2MSFTNGP04.phx.gbl...
"fniles" <fn****@pfmail.comwrote in message
news:Ol*************@TK2MSFTNGP02.phx.gbl...
>>I need to store information in a 2 dimensional array. I understand
ArrayList only works for a single dimensional array, is that correct ?
So, I use the 2 dimensional array like in VB6. I pass the array into a
subroutine, and inside it I "Redim Preserve" the array to increase the
number of item in the array. I got the error "Redim statement requires an
array", but arr is an array. HOw can I fix this problem ? Or, how can I
do ArrayList for 2 dimensional array ?
THank you very much.

Private arr(COM_MAX, 0) As String
LoadArr(arr)

Sub LoadArr(ByRef arr As Array)

Pass it in the same way you define the array, eg
>Sub LoadArr(ByRef arr As int(,))

BTW, redim preserve does a complete copy of every element in the array
every time it's called. In your loop that will mean half a million copies
for each column.

Michael

Nov 21 '06 #3

P: n/a
"RobinS" <Ro****@NoSpam.yah.nonewrote in message
news:Lp******************************@comcast.com. ..
Michael C is right about the Redim Preserve. I wouldn't do that.
I'd use an arraylist or a generic list (depending on what version
of .Net you're using.)
Or redim at the start or redim at set intervals.

Michael
Nov 21 '06 #4

P: n/a
guy
why not have an Arraylist (or preferably a generic List(of T)) of Arraylists?

guy

"fniles" wrote:
I need to store information in a 2 dimensional array. I understand ArrayList
only works for a single dimensional array, is that correct ?
So, I use the 2 dimensional array like in VB6. I pass the array into a
subroutine, and inside it I "Redim Preserve" the array to increase the
number of item in the array. I got the error "Redim statement requires an
array", but arr is an array. HOw can I fix this problem ? Or, how can I do
ArrayList for 2 dimensional array ?
THank you very much.

Private arr(COM_MAX, 0) As String
LoadArr(arr)

Sub LoadArr(ByRef arr As Array)
lNumComm = 0
For x = 1 to 1000
ReDim Preserve arr(COM_MAX, lNumComm)--->Redim statement requires an array
:
next
Nov 21 '06 #5

P: n/a
Thank you everybody.
I would like to use ArrayList, but it does not work with 2 dimensional
array, does it ?
How can I have a 2 dimensional array ArrayList ?

"guy" <gu*@discussions.microsoft.comwrote in message
news:78**********************************@microsof t.com...
why not have an Arraylist (or preferably a generic List(of T)) of
Arraylists?

guy

"fniles" wrote:
>I need to store information in a 2 dimensional array. I understand
ArrayList
only works for a single dimensional array, is that correct ?
So, I use the 2 dimensional array like in VB6. I pass the array into a
subroutine, and inside it I "Redim Preserve" the array to increase the
number of item in the array. I got the error "Redim statement requires an
array", but arr is an array. HOw can I fix this problem ? Or, how can I
do
ArrayList for 2 dimensional array ?
THank you very much.

Private arr(COM_MAX, 0) As String
LoadArr(arr)

Sub LoadArr(ByRef arr As Array)
lNumComm = 0
For x = 1 to 1000
ReDim Preserve arr(COM_MAX, lNumComm)--->Redim statement requires an
array
:
next

Nov 21 '06 #6

P: n/a
"fniles" <fn****@pfmail.comwrote in message
news:uD**************@TK2MSFTNGP06.phx.gbl...
Thank you everybody.
I would like to use ArrayList, but it does not work with 2 dimensional
array, does it ?
How can I have a 2 dimensional array ArrayList ?
You can put an array into each element of the arraylist I guess. Although
there is nothing wrong with using Redim Preserve if you limit it's use by
increasing the size of the array, say, every 1000 elements.

Michael
Nov 21 '06 #7

This discussion thread is closed

Replies have been disabled for this discussion.