Wahrscheinlich eine wirklich einfache Sache - ich beginne mit C # und muss einem Array Werte hinzufügen, zum Beispiel:
int[] terms;
for(int runs = 0; runs < 400; runs++)
{
terms[] = runs;
}
Für diejenigen, die PHP verwendet haben, versuche ich Folgendes in C # zu tun:
$arr = array();
for ($i = 0; $i < 10; $i++) {
$arr[] = $i;
}
Antworten:
Sie können dies tun -
Alternativ können Sie Listen verwenden. Der Vorteil von Listen besteht darin, dass Sie die Arraygröße beim Instanziieren der Liste nicht kennen müssen.
Bearbeiten: a) for- Schleifen in Liste <T> sind etwas mehr als 2-mal billiger als foreach- Schleifen in Liste <T>, b) Looping auf Array ist ungefähr 2-mal billiger als Looping auf Liste <T>, c) Looping auf Die Verwendung von for für ein Array ist fünfmal billiger als die Schleife auf List <T> mit foreach (was die meisten von uns tun).
quelle
new int[]{}
!!!!!OutOfRangeException
, sobald Sie den Code ausführen. Arrays müssen mit der Größe initialisiert werden, die Sie verwenden möchten. Sie reservieren zu Beginn den gesamten Speicherplatz. Dadurch werden sie sehr schnell, können jedoch nicht in der Größe geändert werden.Wenn Sie in C # 3 schreiben, können Sie dies mit einem Einzeiler tun:
In diesem Code-Snippet wird davon ausgegangen, dass Sie oben in Ihrer Datei eine using-Direktive für System.Linq haben.
Wenn Sie jedoch nach etwas suchen, dessen Größe dynamisch geändert werden kann, wie es bei PHP der Fall ist (ich habe es noch nie gelernt), möchten Sie möglicherweise eine Liste anstelle eines int [] verwenden. . So würde dieser Code aussehen:
Beachten Sie jedoch, dass Sie ein 401st-Element nicht einfach hinzufügen können, indem Sie Begriffe [400] auf einen Wert setzen. Sie müssen stattdessen Add () wie folgt aufrufen:
quelle
Mit Linq ‚s Methode Concat macht diese einfache
Ergebnis 3,4,2
quelle
Hier finden Sie Antworten zur Verwendung eines Arrays.
C # hat jedoch eine sehr praktische Sache namens System.Collections :)
Sammlungen sind ausgefallene Alternativen zur Verwendung eines Arrays, obwohl viele von ihnen ein Array intern verwenden.
Zum Beispiel hat C # eine Sammlung namens List, die dem PHP-Array sehr ähnlich funktioniert.
quelle
Die Verwendung einer Liste als Vermittler ist der einfachste Weg, wie andere beschrieben haben. Da Ihre Eingabe jedoch ein Array ist und Sie die Daten nicht nur in einer Liste behalten möchten, sind Sie möglicherweise über die Leistung besorgt.
Die effizienteste Methode besteht wahrscheinlich darin, ein neues Array zuzuweisen und dann Array.Copy oder Array.CopyTo zu verwenden. Dies ist nicht schwer, wenn Sie nur ein Element am Ende der Liste hinzufügen möchten:
Auf Wunsch kann ich auch eine Code-Code für eine Insert-Erweiterungsmethode eingeben, die einen Zielindex als Eingabe verwendet. Es ist etwas komplizierter und verwendet die statische Methode Array.Copy 1-2 mal.
quelle
Basierend auf der Antwort von Thracx (ich habe nicht genug Punkte, um zu antworten):
Auf diese Weise können Sie dem Array mehr als nur ein Element hinzufügen oder einfach ein Array als Parameter übergeben, um zwei Arrays zu verbinden.
quelle
Sie müssen zuerst das Array zuweisen:
quelle
So würde ich es codieren.
quelle
C # -Arrays haben eine feste Länge und sind immer indiziert. Gehen Sie mit Mottis Lösung:
Beachten Sie, dass dieses Array ein dichtes Array ist, ein zusammenhängender Block von 400 Bytes, in dem Sie Dinge ablegen können. Wenn Sie ein Array mit dynamischer Größe wünschen, verwenden Sie eine Liste <int>.
Weder int [] noch List <int> ist ein assoziatives Array - das wäre ein Wörterbuch <> in C #. Sowohl Arrays als auch Listen sind dicht.
quelle
quelle
Sie können einem Array nicht einfach ein Element hinzufügen. Sie können das Element an einer bestimmten Position wie unten beschrieben festlegen. Ich empfehle jedoch, stattdessen ein
List<int>
oder ein zuCollection<int>
verwenden und es zu verwenden,ToArray()
wenn Sie es in ein Array konvertieren müssen.quelle
Wenn Sie wirklich ein Array benötigen, ist das Folgende wahrscheinlich das einfachste:
quelle
Ich werde dies für eine andere Variante hinzufügen. Ich bevorzuge diese Art von funktionalen Codierungslinien mehr.
quelle
Wenn Sie die Größe des Arrays nicht kennen oder bereits ein vorhandenes Array haben, das Sie hinzufügen. Sie können dies auf zwei Arten tun. Das erste ist die Verwendung eines Generikums
List<T>
: Dazu müssen Sie das Array in ein konvertierenvar termsList = terms.ToList();
und die Add-Methode verwenden. Wenn Sie fertig sind, verwenden Sie dievar terms = termsList.ToArray();
Methode, um zurück in ein Array zu konvertieren.Die zweite Möglichkeit besteht darin, die Größe des aktuellen Arrays zu ändern:
Wenn Sie .NET 3.5 verwenden
Array.Add(...);
Mit beiden können Sie dies dynamisch tun. Wenn Sie viele Elemente hinzufügen, verwenden Sie einfach a
List<T>
. Wenn es sich nur um ein paar Elemente handelt, hat es eine bessere Leistung bei der Größenänderung des Arrays. Dies liegt daran, dass Sie beim Erstellen desList<T>
Objekts mehr Treffer erzielen .Zeiten in Zecken:
3 Artikel
400 Artikel
quelle
Nur ein anderer Ansatz:
quelle
=
anstelle des Vergleichsoperators verwenden? Sie können die Kampfvariable weglassen undruns < 400
die Schleife steuern.Ein Ansatz besteht darin, ein Array über LINQ zu füllen
Wenn Sie ein Array mit einem Element füllen möchten, können Sie einfach schreiben
Wenn Sie ein Array mit mehreren Elementen füllen möchten, können Sie den vorherigen Code in einer Schleife verwenden
quelle
quelle
quelle
quelle
Hinzufügen der Listenwerte zum Zeichenfolgenarray mithilfe von C # ohne Verwendung der ToArray () -Methode
Die Ausgabe des Wertearrays enthält:
einer
zwei
drei
vier
fünf
quelle