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.

copying to a multidimensional array?

P: n/a
I'm trying to copy data from a 1D array to a 2D array.
The obvious thing doesn't work:

int[,] twoDee = new int[2,2];
int[] oneDee = new int[2] { 1, 2 };
Array.Copy(oneDee, 2, twoDee, 2, 2);

This causes a RankException. But the MSDN documentation says:

When copying between multidimensional arrays, the array
behaves like a long one-dimensional array, where the rows
(or columns) are conceptually laid end to end.

This seems to suggest that there should be some way to accomplish
this, but I can't find any other syntax that's acceptable. I can
do it using a jagged 2D array, but I really wanted to avoid creating
lots of 1D subarray objects. Anybody know the trick?
Nov 16 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
I think you misinterpreted what the documentation says. "When copying <b>between</b> multidimensional array<b>s</b>", that would suggest to me what you need both src and dest to be multidimensional. also, if you look at a list of exceptions the method throws, you would see it clearly states that RankException occurs when src and dest have different ranks

I don't know if there's a prebuilt way of doing what you want. but I would just write my own routine to do the copying

----- Mark Smith wrote: ----

I'm trying to copy data from a 1D array to a 2D array
The obvious thing doesn't work

int[,] twoDee = new int[2,2]
int[] oneDee = new int[2] { 1, 2 }
Array.Copy(oneDee, 2, twoDee, 2, 2)

This causes a RankException. But the MSDN documentation says

When copying between multidimensional arrays, the arra
behaves like a long one-dimensional array, where the row
(or columns) are conceptually laid end to end

This seems to suggest that there should be some way to accomplis
this, but I can't find any other syntax that's acceptable. I ca
do it using a jagged 2D array, but I really wanted to avoid creatin
lots of 1D subarray objects. Anybody know the trick

Nov 16 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.