私は以下のようなリストのリストを生成したいと思います。 C#でどうすればいいですか?数字のリストのリストを生成するには?
List<List<int>> data = {{0,0,0,0}, {0,0,0,1}, {0,0,0,2}, ..., {9,9,9,9}};
私は以下のようなリストのリストを生成したいと思います。 C#でどうすればいいですか?数字のリストのリストを生成するには?
List<List<int>> data = {{0,0,0,0}, {0,0,0,1}, {0,0,0,2}, ..., {9,9,9,9}};
別のオプション...
var data = Enumerable.Range(0, 10000)
.Select(x => new List<int>
{ x/1000, (x/100) % 10, (x/10) % 10, x % 10 })
.ToList();
そして、あなたは桁の任意の番号を生成したい場合は、このような何か行うことができます。
int n = 4; // number of digits
var data = Enumerable.Range(0, (int)Math.Pow(10, n))
.Select(x =>
Enumerable.Range(1, n)
.Select(y =>
(x/(int)Math.Pow(10, n - y)) % 10)
.ToList())
.ToList();
これを試してください。
var numbers = Enumerable.Range(0, 10);
var data = (from a in numbers
from b in numbers
from c in numbers
from d in numbers
select new List<int>() { a, b, c, d }).ToList();
Rangeを使用して数値を作成することもできます。var numbers = Enumerable.Range(0、10); –
@vc 74:もちろん、私は自分の答えを編集します。ありがとうございました。あなたの答えは –
ありがとう。 – xport
シンプルと「ダム」ソリューション:
List<List<int>> data = new List<List<int>>();
int i;
int k;
int l;
int m;
for(i=0; i<10; i++){
data.add(new List<int>);
data[i].add(i);
for(k=0; k<10; k++){
data[i].add(k);
for(l=0; l<10; k++){
data[i].add(l);
for(m=0; m<10; k++){
data[i].add(m);
}
}
}
}
ないがテストが、ジョブの最大の一部を行う必要があります - あなたは{0からのすべての番号のリストを埋めるしたい場合、0,0,0}〜{9,9,9,9}
リストのサイズを事前に知っているので、ネイティブの2次元配列が好きです。コードは次のようになります。
var data = new int[10000, 4];
for (int i = 0; i < 10000; i++)
{
data[i,0] = (i/1000);
data[i,1] = (i/100) % 10;
data[i,2] = (i/10) % 10;
data[i,3] = i % 10;
}
を「オンザフライ」とはどういう意味ですか? – basti
あなたは何を達成しようとしていますか? –
実行時に内部リストの内容を入力する必要があります。 – xport