Heim >Backend-Entwicklung >C++ >Wie kann ich C#-Arrays automatisch mit Nicht-Standardwerten füllen?

Wie kann ich C#-Arrays automatisch mit Nicht-Standardwerten füllen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-30 20:35:17935Durchsuche

How Can I Auto-Populate C# Arrays with Non-Default Values?

Automatisches Auffüllen von C#-Arrays mit Nicht-Standardwerten

In C# werden nicht initialisierte Arrays von Werttypen automatisch mit ihren jeweiligen Standardwerten vorbesetzt (z. B. 0 für int, false für bool). Ist es jedoch möglich, dies zu umgehen und einen benutzerdefinierten Startwert für alle Elemente festzulegen?

Verwenden von Array.Fill()

Die Methode Arrays.fill() von Java ist In C# nicht verfügbar, daher bleibt der iterative Ansatz mit einer for-Schleife die Standardmethode. Die Iteration über das Array mag ineffizient erscheinen, ist aber die optimale Lösung, wenn der zugrunde liegende Speicher direkt manipuliert wird.

Alternativer Ansatz

Obwohl es keine integrierte Methode gibt, Es gibt einen alternativen Ansatz mit LINQ (Language Integrated Query):

bool[] abValues = Enumerable.Repeat(true, 1000000).ToArray();

Dieser Ansatz nutzt die Verwenden Sie die Methoden Repeat() und ToArray(), um eine Folge wahrer Werte zu generieren, die 1.000.000 Mal wiederholt wird, und sie dann in ein Array umzuwandeln. Diese Methode stellt sicher, dass alle Elemente auf true gesetzt werden, bevor das Array initialisiert wird. Es ist erwähnenswert, dass die Verwendung von LINQ im Vergleich zum iterativen Ansatz zu zusätzlichem Overhead führen kann.

Überlegungen zur Speicherzuweisung

Wie vermutet, sind die Standardwerte im Speicherzuweisungsprozess von C# verankert für Arrays. Durch die Verwendung der Repeat()-Methode wird dieses Verhalten jedoch effektiv umgangen, indem ein neues Array mit den gewünschten Werten erstellt und die automatische Initialisierung umgangen wird.

Das obige ist der detaillierte Inhalt vonWie kann ich C#-Arrays automatisch mit Nicht-Standardwerten füllen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn