I need to declare an empty string array and i'm using this code
string[] arr = new String[0]();
But I get "method name expected" error.
What's wrong?
I need to declare an empty string array and i'm using this code
string[] arr = new String[0]();
But I get "method name expected" error.
What's wrong?
Try this
string[] arr = new string[] {};
c# Array.Empty<string>()Your syntax is wrong:
string[] arr = new string[]{};
or
string[] arr = new string[0];
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>();
You can try this
string[] arr = {};
null for me when using within an object initializer.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.
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();
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];
int with string if he likes.// zero-element array
var arr0 = System.Array.Empty<string>(); // Recommended: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1825
var arr1 = new string[0];
// 5-Elements array with null values
var arr2 = new string[5];
// 5-Elements array with empty string values
var arr3 = System.Linq.Enumerable.Repeat(string.Empty, 5).ToArray();
var arr4 = System.Linq.Enumerable.Range(0, 5).Select(_ => string.Empty).ToArray();
The following should work fine.
string[] arr = new string[] {""};