What is the easiest way to clear an array of strings?
8 Answers
Have you tried Array.Clear?
string[] foo = ...;
Array.Clear(foo, 0, foo.Length);
Note that this won't change the size of the array - nothing will do that. Instead, it will set each element to null.
If you need something which can actually change size, use a List<string> instead:
List<string> names = new List<string> { "Jon", "Holly", "Tom" };
names.Clear(); // After this, names will be genuinely empty (Count==0)
3 Comments
user404651
Thanks! I couldn't understand why I couldn't find clear under string methods. The answer, of course, is that it's an array method.
Paul C
I should probably know this by now but if you just set the string array to null does that free up the memory or do you have to call
Array.Clear ?Jon Skeet
@CodeBlend: Neither. You don't set an array to
null - you set a variable to null. When there are no live references to the array, it will be eligible for garbage collection (but won't be immediately GC'd). If there are elements within that array which are only referred to by that array, they're eligible for garbage collection too.Array.Clear(theArray, 0, theArray.Length);
1 Comment
Jon Skeet
That won't compile - Clear isn't an instance method, and it isn't parameterless either.
clear?