web-dev-qa-db-fra.com

C # déclare un tableau de chaîne vide

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 l'erreur "nom de méthode attendu".

Qu'est-ce qui ne va pas?

131
aquanat

Essaye ça

string[] arr = new string[] {};
219

Votre syntaxe est fausse:

string[] arr = new string[]{};

ou

string[] arr = new string[0];
62
Andrei

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>();
10
Brian

Tu peux essayer ça

string[] arr = {};
8
Bharadwaj

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)

8
It'sNotALie.

Ces choses bouclées sont parfois difficiles à retenir, c'est pourquoi il y a une excellente documentation :

// Declare a single-dimensional array  
int[] array1 = new int[5];
1
CodeCaster

Votre syntaxe n'est pas valide.

string[] arr = new string[5];

Cela créera arr, un tableau de chaînes référencé, où tous les éléments de ce tableau sont null. (Puisque les chaînes sont des types de référence )

Ce tableau contient les éléments de arr[0] à arr[4]. L'opérateur new 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 à null.

Single-Dimensional Arrays (C# Programming Guide)

1
Soner Gönül

Ce qui suit devrait bien fonctionner.

string[] arr = new string[] {""};
0

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 aussi utiliser List<string> comme

var valStrings = new List<string>();

// do stuff...

string[] arrStrings = valStrings.ToArray();
0
Rahul