Warum brauchen Sie ein leeres Array? Was versuchst du zu machen?
Herr T.
7
@ MrT. nicht wirklich relevant für die Frage.
James
1
@ James - vielleicht gibt es eine elegantere Möglichkeit, alles zu tun, was er versucht.
Herr T.
4
@aquanat - Obwohl eine Antwort bereits akzeptiert wurde und ich Ihren Code oder die Logik dahinter nicht kenne, würde ich Ihnen demütig empfehlen, kein leeres Array, sondern null zurückzugeben und von der aufrufenden Funktion zu prüfen, ob der zurückgegebene Wert null oder ist nicht. Ich denke, dass es viel eleganter, lesbarer und effizienter wäre.
Herr T.
2
Der Grund, warum Sie null nicht zurückgeben möchten, ist, dass der Konsument der Methode nach null suchen muss. Beispielsweise könnte der Konsument der Methode den zurückgegebenen Wert in ein foreach einfügen, und wenn ein leeres Array zurückgegeben wird, gibt es kein Problem. Wenn jedoch null zurückgegeben wird, muss vor dem Iterieren des zurückgegebenen Werts eine Überprüfung auf null durchgeführt werden
Vielen Dank an alle ... frag mich nicht warum, aber der einzige Weg war: string [] arr = new String [0] as string [];
Aquanat
2
Atishs Methode hat funktioniert und die Beschwerde von Visual Studio über die Verwendung einer Variablen beseitigt, die nicht initialisiert wird, wenn ich sie in einer if-Anweisung zuweise
Warum wird in Ihren Beispielen Zeichenfolge sowohl aktiviert als auch nicht aktiviert?
wahr.
1
@newStackExchangeInstance, kopierte einfach den Code "wie er ist" aus der Frage. Beide Zeilen lassen sich gut kompilieren, obwohl ich der Meinung bin, dass es besser ist, einem Stil zu folgen.
Andrei
15
Wenn Sie .net 4.6 verwenden, haben sie eine neue Syntax, die Sie verwenden können:
using System;// To pick up definition of the Array class.var myArray =Array.Empty<string>();
Diese Antwort muss nicht bearbeitet werden, da die Antworten dem allgemeinen Zweck dienen und nicht der spezifischen Frage per say. Es antwortet auf "Was ist die Syntax zum Deklarieren und Initialisieren eines Arrays" und ist ein Zitat aus dem Link, den ich gepostet habe. OP kann ersetzen intmit , stringwenn er will.
CodeCaster
1
Ihre Syntax ist ungültig.
string[] arr =newstring[5];
Dadurch wird arrein referenziertes Array von Zeichenfolgen erstellt, in dem sich alle Elemente dieses Arrays befinden null. (Da Zeichenfolgen Referenztypen sind )
Dieses Array enthält die Elemente von arr[0]bis arr[4]. Der newOperator wird verwendet, um das Array zu erstellen und die Array-Elemente auf ihre Standardwerte zu initialisieren. In diesem Beispiel werden alle Array-Elemente mit initialisiert null.
Antworten:
Versuche dies
quelle
c# Array.Empty<string>()
Ihre Syntax ist falsch:
oder
quelle
Wenn Sie .net 4.6 verwenden, haben sie eine neue Syntax, die Sie verwenden können:
quelle
Sie können dies versuchen
quelle
Die Konstruktoren von Arrays sind unterschiedlich. Hier sind einige Möglichkeiten, ein leeres String-Array zu erstellen:
(Entschuldigung, auf dem Handy)
quelle
Diese lockigen Dinge sind manchmal schwer zu merken, deshalb gibt es eine ausgezeichnete Dokumentation :
quelle
int
mit ,string
wenn er will.Ihre Syntax ist ungültig.
Dadurch wird
arr
ein referenziertes Array von Zeichenfolgen erstellt, in dem sich alle Elemente dieses Arrays befindennull
. (Da Zeichenfolgen Referenztypen sind )Dieses Array enthält die Elemente von
arr[0]
bisarr[4]
. Dernew
Operator wird verwendet, um das Array zu erstellen und die Array-Elemente auf ihre Standardwerte zu initialisieren. In diesem Beispiel werden alle Array-Elemente mit initialisiertnull
.Single-Dimensional Arrays (C# Programming Guide)
quelle
Wenn Sie ein leeres Array erstellen müssen, können Sie dies tun:
Wenn Sie nicht über die Größe wissen, können Sie auch
List<string>
so gerne verwendenquelle
Folgendes sollte gut funktionieren.
quelle