Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 541
  • Last Modified:

Reset length array in C#

hi all,

i am still new in C#,
In vb.net you can use redim to reset the length of an array, but in C# how i can reset the length of an array
0
MKItani
Asked:
MKItani
  • 3
  • 3
  • 2
5 Solutions
 
crysallusCommented:
Array.Resize(myArray, newLength);

http://msdn.microsoft.com/en-us/library/bb348051.aspx
0
 
crysallusCommented:
oops:

Array.Resize(ref myArray, newLength);

Open in new window

0
 
MKItaniAuthor Commented:
thsnk  u verry much  crysallus but how i can use array.resize in case i have a array of two or three dimensials like:
A[2][3] or B[2][3][4]

i am waiting for your response.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
StephanLead Software EngineerCommented:
There is no real function available within the .net framework.

You could create your own resize function in order to fix this.
http://www.dreamincode.net/code/snippet1401.htm
0
 
MKItaniAuthor Commented:
thank u stephanonline but this reset the length of a string of array.
Dear all,
 what i want is function that can reset a multidimension of any type of array?

Waiting for you response.
0
 
StephanLead Software EngineerCommented:
the string type is just an example.

When you want to use any type, you can do the following:

private void ResizeArray<T>(ref T[,] original, int cols, int rows) where T : class
{
    //create a new 2 dimensional array with
    //the size we want
    T[,] newArray = new T[rows, cols];
    //copy the contents of the old array to the new one
    Array.Copy(original, newArray, original.Length);
    //set the original to the new array
    original = newArray;
}

Open in new window


and to call the function, you can do as follows:

ResizeArray<int>(list, 2, 10);

If you have three dimensional, you need to create the function that accept this.
There is no other way.
0
 
crysallusCommented:
Yeah, ditto what stephanonline said about handling arrays of more than one dimension.

Though of course in C#, T[,] is different to T[][]. See http://msdn.microsoft.com/en-us/library/9b9dty7d.aspx if you're not sure on the difference. You may need to change stephanonline's code to T[][] if that's the type of arrays you are using.

If you're doing this often, then you'd probably be best using some collection class like List<T>, and have List's of Lists, which you can add elements to at will. Resizing arrays is not something that is normally done too often, hence the lack of .NET functions to do it. The C# way would be to use a collection class like List<T> or ArrayList instead.
0
 
MKItaniAuthor Commented:
not accurate
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

  • 3
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now