ループを記述することなく行列を作成できるかどうかを知りたいと思います。私は範囲の簡単なリストから始めようとしますが、私はさらに進む方法を知らない。ここでループなしで行列を作成する方法
Enumerable.Range(1, 4).ToList()
3つのループを有するコード:
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;
}
これは私の行列
[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]
の結果であり、あなたはそれが可能だと思いますか?
Thxをたくさん
はいを試してみてください。非常にそう – BugFinder
あなたはそれのためのlinqまたはラムダ式を使用する必要がありますこれらのリンクを確認してください:http://stackoverflow.com/questions/3183626/convert-nested-for-loops-into-single-linq-statement; http://codereview.stackexchange.com/questions/105336/convert-foreach-loop-into-linq-in-c –
回避ループのポイントは何ですか? Linqであっても、内部でそれらを使用します。 list/matrix/whiterを反復することなく、すべてのセルを通過する方法はありません。 – HimBromBeere