Ich würde gerne wissen, ob es möglich ist, eine Matrix zu erstellen, ohne eine Schleife zu schreiben. Ich versuche, mit einer einfachen Liste der Reichweite zu beginnen, aber ich weiß nicht, wie ich weiter gehen soll.So erstellen Sie eine Matrix ohne Schleife
Enumerable.Range(1, 4).ToList()
Hier ist der Code mit 3 Schlaufen:
private static int[][] calculPossibleCombinaison(){
int l;
for (int i = 1; i < 5; i++) {
for (int j = 1; j < 5; j++) {
for (int k = 1; k < 5; k++) {
l = (i*j*k)-1;
combinaison[l][0] = i;
combinaison[l][1] = j;
combinaison[l][2] = k;
console.writeline("["+combinaison[l][0]+","+combinaison[l][1]+","+combinaison[l][2]+"]");
}
}
}
return combinaison;
}
Dies ist das Ergebnis meiner Matrix
[1,1,1] [1,1,2] [1,1,3] [1,2,1] [1,2,2] [1,2,3] [1,3,1] [1,3,2] [1,3,3] [2,1,1] [2,1,2] [2,1,3] [2,2,1] [2,2,2] [2,2,3] [2,3,1] [2,3,2] [2,3,3] [3,1,1] [3,1,2] [3,1,3] [3,2,1] [3,2,2] [3,2,3] [3,3,1] [3,3,2] [3,3,3]
Denken Sie, es ist möglich?
Thx viel
ja. sehr viel – BugFinder
Sie müssen Linq oder Lambda-Ausdruck dafür verwenden, überprüfen Sie diesen Link: http://StackOverflow.com/Questions/3183626/convert-nested-for-loops-into-Single-Linq-Anweisung; http://codereview.stackexchange.com/questions/105336/convert-foreach-loop-into-linq-in-c –
Was ist der Punkt Schleifen zu vermeiden? Selbst mit Linq würden Sie sie intern verwenden. Es gibt keine Möglichkeit, durch alle Zellen zu gehen, ohne die Liste/Matrix/was auch immer zu durchlaufen. – HimBromBeere