• 0

[C#] Array Resizing


Question

How do I resize an array without losing the contents of the array?

  Quote
string[] arr;

...

arr = new string[5];

arr[4] = "Data";

In the above example, whenever I use "arr = new string[5];" it completely wipes the previous array data and the only data that exists is arr[4]. How do I resize an array without losing the data?

Thanks in advance.

Link to comment
https://www.neowin.net/forum/topic/254878-c-array-resizing/
Share on other sites

15 answers to this question

Recommended Posts

  • 0

You have discovered the reason to have the Arraylist!! It's a dynamically growing data structure. In this case, I think the arraylist would be your best bet, and you won't see much performance degradation.

  • 0

Hmmm, like many said i think there's no ultimate solution besides moving to ArrayList, if you're pretty sure your collection won't grow to extreme amounts then you can probably just make a method that will merge existing data from an array into a new sized array, very easily done.

ArrayList do have a performance hit as mentioned, furthermore, you have to do type-casting and that's another issue, but i think you shouldn't need to worry too much about these factors, as the framework handles it pretty well.

  • 0
  Blackout said:
So how would I go about converting an Arraylist to a string[]?

585068903[/snapback]

  ArrayList al = new ArrayList;

  //
  // ... Fill array list with string here
  //     such as al.Add("hello //

  string[] s = new string[al.Count];
  for (int i=0; i < al.Count; i++)
      s[i] = (string)al[i];

  • 0
  Blackout said:
So how would I go about converting an Arraylist to a string[]?

585068903[/snapback]

You mean the other way arround?

ArrayList stringCollection = new ArrayList();

stringCollection.add(yourString);

The good thing with using ArrayList is you don't have to specify the size, the size is dynamically changed accordingly during run-time as the list becomes filled with Objects.

  • 0

You could also use the CopyTo method to copy the contents in one shot.

ArrayList al = new ArrayList();

// ... add strings

string[] s = new string[al.Count];
al.CopyTo(s, 0);

Note that if your ArrayList contains things other than strings, you'll get an exception. That's really the only downside to using the ArrayList. It's not typesafe. You could create your own strongly typed collection by making a class that inherits from CollectionBase. OR, you could use the StringCollection in System.Collections.Specialized(saved the best for last).

  • 0
  weenur said:
You could also use the CopyTo method to copy the contents in one shot.

ArrayList al = new ArrayList();

// ... add strings

string[] s = new string[al.Count];
al.CopyTo(s, 0);

Note that if your ArrayList contains things other than strings, you'll get an exception. That's really the only downside to using the ArrayList. It's not typesafe. You could create your own strongly typed collection by making a class that inherits from CollectionBase. OR, you could use the StringCollection in System.Collections.Specialized(saved the best for last).

585070088[/snapback]

And that's why I can't wait for generics (.NET 2.0).

ArrayList<string> s = new ArrayList<string>;

:D

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • > Our goal is to ensure that the App Store remains an outstanding opportunity for developers and a safe, trusted experience for our users. There are so many scam apps on the platform that it is hard to believe they are truly interested in having a safe, trusted experience for their users.
    • Google announces upgraded Gemini 2.5 Pro model with enhanced capabilities by Pradeep Viswanathan Google today announced an updated Gemini 2.5 model with several improvements that can be observed in popular AI benchmarks. Google particularly highlighted that the new Gemini 2.5 Preview 06-05 "Thinking" model performs better in coding, math, science, and reasoning. Last month, during Google I/O, Google released an updated version of the Gemini 2.5 Pro model with significant improvements. Today's update builds on the release of the previous month with further enhancements. In addition to benchmark improvements, based on user feedback, this updated Gemini 2.5 Pro model also comes with improved style and structure, which will result in creative and better-formatted responses for end users. You can find the benchmark comparison with other leading AI models below. As you can notice in the above table, this updated Gemini 2.5 Pro preview model is now SOTA (State-of-the-Art) in coding benchmarks like Aider Polyglot. It also scored SOTA performance on GPQA and Humanity’s Last Exam (HLE) benchmarks, which test math, science, knowledge, and reasoning capabilities. In real-world testing, this latest 2.5 Pro model scored 24 points better on LMArena, maintaining its lead, and a 35-point jump on WebDevArena at 1443. Developers can access this latest Gemini 2.5 Pro preview model through the Gemini API via Google AI Studio and Vertex AI. General consumers will be able to access this model via the Gemini app. Google also confirmed that the Gemini 2.5 Pro model will be generally available in a couple of weeks, allowing developers to start using it in production-ready enterprise-scale applications.
    • The Bromance is definitely over! 🤣🤣🤣
    • I have the chance to live where electricity comes only from dams.
    • Which doesn't give them a pass for making the same game with a different skin
  • Recent Achievements

    • Week One Done
      jbatch earned a badge
      Week One Done
    • First Post
      Yianis earned a badge
      First Post
    • Rookie
      GTRoberts went up a rank
      Rookie
    • First Post
      James courage Tabla earned a badge
      First Post
    • Reacting Well
      James courage Tabla earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      411
    2. 2
      +FloatingFatMan
      181
    3. 3
      snowy owl
      177
    4. 4
      ATLien_0
      174
    5. 5
      Xenon
      135
  • Tell a friend

    Love Neowin? Tell a friend!