Frage Wie man 0 dem ganzen Array zuweist


Ich habe ein Array. int[] array = new int[10];. Ich möchte dem ganzen Array '0' zuweisen, ohne die Verwendung von loop bedeutet, dass 0 in allen Indizes gespeichert werden soll. Wie würde ich es machen?


11
2018-03-06 07:39


Ursprung


Antworten:


Nach der Erstellung haben alle Array-Elemente Standardwerte, dh 0 für int. Du musst also hier nichts machen.

Von Arrays (C # -Programmierhandbuch):

Die Standardwerte numerischer Array-Elemente sind auf Null und   Referenzelemente werden auf null gesetzt.


Auch aus C # Spezifikation 12.2 Array-Erstellung

Elemente von Arrays, die von array-creation-expressions erstellt werden, sind immer   auf ihren Standardwert initialisiert.

5.2 Standardwerte

Für eine Variable eines Werttyps entspricht der Standardwert dem Wert   Wert, der vom Standardkonstruktor des Werttyps berechnet wird

4.1.2 Standardkonstruktoren

Für sbyte, byte, kurz, ushort, int, uint, long und ulong   Standardwert ist 0.


aber nachdem ich andere Werte zugewiesen habe, will ich, dass alle Indizes wieder 0 sind   also, wie würde ich es tun?

AKTUALISIEREN: Sie können verwenden Array.Clear:

Legt einen Bereich von Elementen im Array auf null, auf false oder auf null fest.   abhängig vom Elementtyp.

In Ihrem Fall:

Array.Clear(array, 0, array.Length);

Erwägen Sie auch zu verwenden List<int> anstelle von Array - erlaubt es, Elemente dynamisch hinzuzufügen / zu entfernen.


13
2018-03-06 07:40



Sie müssen überhaupt nichts tun.

Schon seit int ist ein WerttypAlle Elemente werden initialisiert 0 als Standard

Von Arrays (C# Programming Guide)

Die Standardwerte numerischer Array-Elemente sind auf Null und   Referenzelemente werden auf null gesetzt.


ok, wenn ich möchte, dass es 3 zugewiesen wird, wie würde ich es tun?

Sie können die for-Schleife verwenden, um sie zuzuweisen;

int[] array = new int[10];
for(int i = 0; i < array.Length; i++)
    array[i] = 3;

Wenn Sie ihre Standardwerte zurückgeben wollen 0 In diesem Fall können Sie ein neues Array erstellen oder verwenden Array.Clear Methode wie;

Array.Clear(array, 0, array.Length);

Wenn Sie wirklich keine Schleife verwenden möchten, müssen Sie möglicherweise verwenden List<int> stattdessen ein Array. Es hat mehr Funktionalität und erstellt eine saubere Liste (ohne irgendeinen Standardwert).


10
2018-03-06 07:40