2D-Array. Setzen Sie alle Werte auf einen bestimmten Wert

8

Um dem 1D-Array einen bestimmten Wert zuzuweisen, verwende ich LINQ wie folgt:

%Vor%

Es gibt einen ähnlichen Weg im 2D ([x, y]) Array? Oder kurz, ohne verschachtelte Schleifen zu verwenden?

    
Matan Shahar 27.03.2012, 16:52
quelle

5 Antworten

6

LINQ funktioniert nicht besonders gut mit mehrdimensionalen Arrays.

Gezackte Arrays sind nicht zu schlecht:

%Vor%

... aber rechteckige Arrays haben keine spezifische Unterstützung. Verwenden Sie einfach Schleifen.

(Beachten Sie die Verwendung von Enumerable.Repeat als etwas einfachere Methode zum Erstellen des 1-dimensionalen Arrays, btw.)

    
Jon Skeet 27.03.2012, 16:57
quelle
5

Wenn Sie wirklich verschachtelte Schleifen vermeiden wollen, können Sie nur eine Schleife verwenden:

%Vor%

Sie können es einfacher machen, indem Sie es in eine Funktion in einer Dienstprogrammklasse werfen:

%Vor%

Und benutze es so:

%Vor%     
Bob 27.03.2012 17:41
quelle
3

Nun, das könnte Betrug sein, weil es einfach den Schleifencode in eine Erweiterungsmethode verschiebt, aber es erlaubt Ihnen, Ihr 2D-Array einfach auf einen einzelnen Wert zu initialisieren, ähnlich wie Sie ein 1D-Array initialisieren können zu einem einzigen Wert.

Zuerst, wie Jon Skeet erwähnte, könnten Sie Ihr Beispiel für die Initialisierung eines 1D-Arrays wie folgt aufräumen:

%Vor%

Mit meiner Erweiterungsmethode können Sie ein 2D-Array wie folgt initialisieren:

%Vor%     
wageoghe 27.03.2012 17:44
quelle
1

Eine Möglichkeit, dies zu tun, ist wie folgt:

%Vor%     
kmp 27.03.2012 17:02
quelle
1

Darf ich eine neue Erweiterungsmethode vorschlagen?

%Vor%

Benutze es so:

%Vor%     
vidstige 27.03.2012 17:52
quelle

Tags und Links