2D-Array. Setzt alle Werte auf bestimmten Wert
Weisen bestimmte Wert für 1D-array verwende ich LINQ-wie so:
int[] nums = new int[20];
nums = (from i in nums select 1).ToArray<int>();
nums[0] = 2;
Gibt es ähnliche Art und Weise zu tun, also in 2D ([x,y]) array?
Oder kurzen Weg, ohne Verwendung von nested loops?
- Ihre nicht-Einstellung von Werten in einem array, Ihr erstellen eines neuen array
Du musst angemeldet sein, um einen Kommentar abzugeben.
LINQ funktioniert nicht besonders gut mit multi-dimensionalen arrays.
Jagged arrays sind auch nicht schlecht:
... aber rechteckige arrays haben keine spezielle Unterstützung. Verwenden Sie einfach Schleifen.
(Beachten Sie die Verwendung von
Enumerable.Repeat
als einen etwas einfacheren Ansatz für die Schaffung der 1-dimensionalen array, btw.)Wenn Sie wirklich wollen, um zu vermeiden, nested loops können Sie mit nur einer Schleife:
Erleichtern, können Sie durch das werfen es in eine Funktion in einer utility-Klasse:
Und verwenden Sie es wie diese:
Gut, das könnte betrügen, weil es bewegt sich einfach die looping-code eine extension-Methode, aber es erlaubt Ihnen, zu initialisieren, Ihre 2D-array zu einem einzigen Wert, einfach, und in einer Weise ähnlich zu der, wie Sie initialisieren kann ein 1D-array zu einem einzigen Wert.
Ersten, wie Jon Skeet erwähnt, man könnte bereinigen, Ihre Beispiel der Initialisierung ein 1D-array wie dieses:
Mit meinem extension-Methode werden Sie in der Lage, initialisieren Sie ein 2D-array wie dieses:
Einer Weise, die Sie tun können, diese lautet in etwa so:
Darf ich vorschlagen, eine neue Erweiterung Methode.
Verwenden Sie es wie diese: