J'ai besoin de déclarer un tableau de chaînes vide et j'utilise ce code
string[] arr = new String[0]();
Mais j'obtiens une erreur "nom de méthode attendu".
Qu'est-ce qui ne va pas?
J'ai besoin de déclarer un tableau de chaînes vide et j'utilise ce code
string[] arr = new String[0]();
Mais j'obtiens une erreur "nom de méthode attendu".
Qu'est-ce qui ne va pas?
Réponses:
Essaye ça
string[] arr = new string[] {};
c# Array.Empty<string>()
Votre syntaxe est incorrecte:
string[] arr = new string[]{};
ou
string[] arr = new string[0];
Si vous utilisez .net 4.6, ils ont une nouvelle syntaxe que vous pouvez utiliser:
using System; // To pick up definition of the Array class.
var myArray = Array.Empty<string>();
Les constructeurs des tableaux sont différents. Voici quelques façons de créer un tableau de chaînes vide:
var arr = new string[0];
var arr = new string[]{};
var arr = Enumerable.Empty<string>().ToArray()
(désolé, sur mobile)
Ces choses bouclées sont parfois difficiles à retenir, c'est pourquoi il existe une excellente documentation :
// Declare a single-dimensional array
int[] array1 = new int[5];
int
par string
s'il le souhaite.
Votre syntaxe n'est pas valide.
string[] arr = new string[5];
Cela créera arr
, un tableau référencé de chaînes, où se trouvent tous les éléments de ce tableau null
. (Puisque les chaînes sont des types de référence )
Ce tableau contient les éléments de arr[0]
à arr[4]
. L' new
opérateur est utilisé pour créer le tableau et initialiser les éléments du tableau à leurs valeurs par défaut. Dans cet exemple, tous les éléments du tableau sont initialisés avec null
.
Si vous devez créer un tableau vide, vous pouvez le faire:
string[] arr = new string[0];
Si vous ne connaissez pas la taille, vous pouvez également utiliser List<string>
comme
var valStrings = new List<string>();
// do stuff...
string[] arrStrings = valStrings.ToArray();
Ce qui suit devrait fonctionner correctement.
string[] arr = new string[] {""};