469,953 Members | 2,426 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,953 developers. It's quick & easy.

2 dimensional array question

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
6 2073
"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
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
"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
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
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
"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.

Similar topics

4 posts views Thread by Todd | last post: by
6 posts views Thread by Ruben | last post: by
4 posts views Thread by Balaskas Evaggelos | last post: by
272 posts views Thread by Peter Olcott | last post: by
5 posts views Thread by nelly0 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.