The following should work fine.
string[] arr = new string[] {""};
Your syntax is invalid.
string[] arr = new string[5];
That will create arr
, a referenced array of strings, where all elements of this array are null
. (Since strings are reference types)
This array contains the elements from arr[0]
to arr[4]
. The new
operator is used to create the array and initialize the array elements to their default values. In this example, all the array elements are initialized to null
.
You can try this
string[] arr = {};
If you must create an empty array you can do this:
string[] arr = new string[0];
If you don't know about the size then You may also use List<string>
as well like
var valStrings = new List<string>();
// do stuff...
string[] arrStrings = valStrings.ToArray();
Arrays' constructors are different. Here are some ways to make an empty string array:
var arr = new string[0];
var arr = new string[]{};
var arr = Enumerable.Empty<string>().ToArray()
(sorry, on mobile)
Your syntax is wrong:
string[] arr = new string[]{};
or
string[] arr = new string[0];
Those curly things are sometimes hard to remember, that's why there's excellent documentation:
// Declare a single-dimensional array
int[] array1 = new int[5];
If you are using .NET Framework 4.6 and later, they have some new syntax you can use:
using System; // To pick up definition of the Array class.
var myArray = Array.Empty<string>();
Source: Stackoverflow.com