710 Stimmen

Hinzufügen von Werten zu einem C#-Array

Wahrscheinlich eine wirklich einfache dieses - ich bin mit C# beginnen und müssen Werte zu einem Array hinzufügen, zum Beispiel:

int[] terms;

for(int runs = 0; runs < 400; runs++)
{
    terms[] = runs;
}

Für diejenigen, die PHP verwendet haben, hier ist, was ich versuche, in c# zu tun:

$arr = array();
for ($i = 0; $i < 10; $i++) {
    $arr[] = $i;
}

1039voto

Tamas Czinege Punkte 114595

Sie können so vorgehen -

int[] terms = new int[400];
for (int runs = 0; runs < 400; runs++)
{
    terms[runs] = value;
}

Alternativ können Sie auch Listen verwenden. Der Vorteil von Listen ist, dass Sie die Größe des Arrays nicht kennen müssen, wenn Sie die Liste instanziieren.

List<int> termsList = new List<int>();
for (int runs = 0; runs < 400; runs++)
{
    termsList.Add(value);
}

// You can convert it back to an array if you would like to
int[] terms = termsList.ToArray();

Edit : a) für Schleifen auf List<T> sind etwas mehr als 2-mal billiger als foreach Schleifen auf List<T>, b) Schleifen auf Array sind etwa 2 mal billiger als Schleifen auf List<T>, c) Schleifen auf Array mit für ist 5 Mal billiger als die Schleifenbildung auf List<T> mit foreach (was die meisten von uns tun).

160voto

Yitzhak Weinberg Punkte 1928

Verwendung von Linq Die Methode Concat macht dies einfach

int[] array = new int[] { 3, 4 };

array = array.Concat(new int[] { 2 }).ToArray();

Ergebnis 3,4,2

97voto

Amanda Mitchell Punkte 2627

Wenn Sie in C# 3 schreiben, können Sie dies mit einem Einzeiler tun:

int[] terms = Enumerable.Range(0, 400).ToArray();

Dieser Codeschnipsel setzt voraus, dass Sie eine using-Direktive für System.Linq am Anfang Ihrer Datei haben.

Wenn Sie hingegen etwas suchen, das dynamisch in der Größe verändert werden kann, wie es bei PHP der Fall zu sein scheint (ich habe es nie wirklich gelernt), dann sollten Sie vielleicht eine Liste anstelle eines int[] verwenden. So sieht es aus que würde der Code wie folgt aussehen:

List<int> terms = Enumerable.Range(0, 400).ToList();

Beachten Sie jedoch, dass Sie nicht einfach ein 401. Element hinzufügen können, indem Sie terms[400] auf einen Wert setzen. Stattdessen müssen Sie Add() aufrufen, etwa so:

terms.Add(1337);

72voto

Leandro Bardelli Punkte 8293

Bis 2019 können Sie Append , Prepend mit LinQ in nur einer Zeile

using System.Linq;

und dann:

terms= terms.Append(21).ToArray();

43voto

FlySwat Punkte 165766

Antworten auf die Frage, wie man ein Array verwendet, finden Sie hier.

Allerdings hat C# eine sehr praktische Sache namens System.Collections :)

Sammlungen sind schicke Alternativen zur Verwendung eines Arrays, obwohl viele von ihnen intern ein Array verwenden.

In C# gibt es zum Beispiel eine Sammlung namens List, die sehr ähnlich wie ein PHP-Array funktioniert.

using System.Collections.Generic;

// Create a List, and it can only contain integers.
List<int> list = new List<int>();

for (int i = 0; i < 400; i++)
{
   list.Add(i);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X