Pourquoi avez-vous besoin d'un tableau vide? Qu'essayez-vous de faire?
Mr T.
7
@MrT. pas vraiment pertinent par rapport à la question.
James
1
@James - il y a peut-être une manière plus élégante de faire tout ce qu'il essaie de faire.
Mr T.
4
@aquanat - bien qu'une réponse ait déjà été acceptée et que je ne connaisse pas votre code ou la logique derrière elle, je vous suggère humblement de ne pas renvoyer un tableau vide mais nul et de vérifier à partir de la fonction appelante si la valeur renvoyée est nulle ou ne pas. Je pense que ce serait beaucoup plus élégant, lisible et efficace.
Mr T.
2
La raison pour laquelle vous ne souhaitez pas renvoyer null est que le consommateur de la méthode doit rechercher null. Par exemple, le consommateur de la méthode pourrait mettre la valeur retournée dans un foreach et si un tableau vide est retourné, il n'y a pas de problème. Cependant, si null est retourné, il doit y avoir une vérification de null avant d'itérer la valeur retournée
Merci à tous ... ne me demandez pas pourquoi, mais le seul moyen était: string [] arr = new String [0] as string [];
aquanat
2
La méthode d'Atish a fonctionné et éliminé les plaintes de Visual Studio sur l'utilisation d'une variable qui n'est pas initialisée si je l'assigne dans une instruction if
Pourquoi la chaîne est-elle à la fois en majuscule et non en majuscule dans vos exemples?
n'est pasALie.
1
@newStackExchangeInstance, vient de copier le code "tel quel" de la question. Les deux lignes se compilent bien, même si je suis d'accord pour dire que suivre un style est mieux.
Andrei
15
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>();
Inutile de modifier cette réponse, car les réponses servent le but général, et non la question spécifique en soi. Il répond "Quelle est la syntaxe pour déclarer et initialiser un tableau" et est une citation du lien que j'ai posté. OP peut remplacer intpar strings'il le souhaite.
CodeCaster
1
Votre syntaxe n'est pas valide.
string[] arr =newstring[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' newopé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.
Réponses:
Essaye ça
la source
c# Array.Empty<string>()
Votre syntaxe est incorrecte:
ou
la source
Si vous utilisez .net 4.6, ils ont une nouvelle syntaxe que vous pouvez utiliser:
la source
Tu peux essayer ça
la source
Les constructeurs des tableaux sont différents. Voici quelques façons de créer un tableau de chaînes vide:
(désolé, sur mobile)
la source
Ces choses bouclées sont parfois difficiles à retenir, c'est pourquoi il existe une excellente documentation :
la source
int
parstring
s'il le souhaite.Votre syntaxe n'est pas valide.
Cela créera
arr
, un tableau référencé de chaînes, où se trouvent tous les éléments de ce tableaunull
. (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 avecnull
.Single-Dimensional Arrays (C# Programming Guide)
la source
Si vous devez créer un tableau vide, vous pouvez le faire:
Si vous ne connaissez pas la taille, vous pouvez également utiliser
List<string>
commela source
Ce qui suit devrait fonctionner correctement.
la source