回答編集履歴
4
dictionary から空の要素を除外した
test
CHANGED
@@ -3,14 +3,6 @@
|
|
3
3
|
void Main()
|
4
4
|
|
5
5
|
{
|
6
|
-
|
7
|
-
var dictionary = Enumerable.Range(0, 10)
|
8
|
-
|
9
|
-
.Select(_ => new { Index = _, List = new List<int>() })
|
10
|
-
|
11
|
-
.ToDictionary(_ => _.Index, _ => _.List);
|
12
|
-
|
13
|
-
|
14
6
|
|
15
7
|
IEnumerable<int> Generate(int maxValue)
|
16
8
|
|
@@ -32,23 +24,27 @@
|
|
32
24
|
|
33
25
|
|
34
26
|
|
35
|
-
|
27
|
+
var dictionary = Generate(101)
|
36
28
|
|
37
|
-
|
29
|
+
.Select(value =>
|
38
30
|
|
31
|
+
{
|
32
|
+
|
39
|
-
Console.WriteLine($"0~100の値を出力:{value}");
|
33
|
+
Console.WriteLine($"0~100の値を出力:{value}");
|
34
|
+
|
35
|
+
return value;
|
36
|
+
|
37
|
+
})
|
38
|
+
|
39
|
+
.TakeWhile(value => value != 0)
|
40
|
+
|
41
|
+
.GroupBy(value => value % 10)
|
42
|
+
|
43
|
+
.ToDictionary(_ => _.Key, _ => _.ToList());
|
40
44
|
|
41
45
|
|
42
46
|
|
43
|
-
if (value == 0) break;
|
44
|
-
|
45
|
-
dictionary[value % 10].Add(value);
|
46
|
-
|
47
|
-
}
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
foreach (var i in
|
47
|
+
foreach (var i in dictionary.Keys.OrderBy(_ => _))
|
52
48
|
|
53
49
|
{
|
54
50
|
|
3
List<int>\[\] を Dictionary<int, List<int>> に修正した
test
CHANGED
@@ -4,7 +4,11 @@
|
|
4
4
|
|
5
5
|
{
|
6
6
|
|
7
|
+
var dictionary = Enumerable.Range(0, 10)
|
8
|
+
|
7
|
-
|
9
|
+
.Select(_ => new { Index = _, List = new List<int>() })
|
10
|
+
|
11
|
+
.ToDictionary(_ => _.Index, _ => _.List);
|
8
12
|
|
9
13
|
|
10
14
|
|
@@ -14,7 +18,7 @@
|
|
14
18
|
|
15
19
|
var random = new Random();
|
16
20
|
|
17
|
-
|
21
|
+
|
18
22
|
|
19
23
|
while (true)
|
20
24
|
|
@@ -26,7 +30,7 @@
|
|
26
30
|
|
27
31
|
}
|
28
32
|
|
29
|
-
|
33
|
+
|
30
34
|
|
31
35
|
foreach (var value in Generate(101))
|
32
36
|
|
@@ -38,17 +42,17 @@
|
|
38
42
|
|
39
43
|
if (value == 0) break;
|
40
44
|
|
41
|
-
r
|
45
|
+
dictionary[value % 10].Add(value);
|
42
46
|
|
43
47
|
}
|
44
48
|
|
45
49
|
|
46
50
|
|
47
|
-
for (var i
|
51
|
+
foreach (var i in Enumerable.Range(0, 10))
|
48
52
|
|
49
53
|
{
|
50
54
|
|
51
|
-
Console.WriteLine($"一の位が{i} : {string.Join(" ",
|
55
|
+
Console.WriteLine($"一の位が{i} : {string.Join(" ", dictionary[i])}");
|
52
56
|
|
53
57
|
}
|
54
58
|
|
2
リファクタリングした
test
CHANGED
@@ -6,35 +6,49 @@
|
|
6
6
|
|
7
7
|
var rows = Enumerable.Range(0, 10).Select(_ => new List<int>()).ToArray();
|
8
8
|
|
9
|
+
|
10
|
+
|
11
|
+
IEnumerable<int> Generate(int maxValue)
|
12
|
+
|
13
|
+
{
|
14
|
+
|
15
|
+
var random = new Random();
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
while (true)
|
20
|
+
|
21
|
+
{
|
22
|
+
|
23
|
+
yield return random.Next(maxValue);
|
24
|
+
|
25
|
+
}
|
26
|
+
|
27
|
+
}
|
28
|
+
|
9
29
|
|
10
30
|
|
11
|
-
var
|
31
|
+
foreach (var value in Generate(101))
|
32
|
+
|
33
|
+
{
|
34
|
+
|
35
|
+
Console.WriteLine($"0~100の値を出力:{value}");
|
12
36
|
|
13
37
|
|
14
38
|
|
15
|
-
while (true)
|
16
|
-
|
17
|
-
{
|
18
|
-
|
19
|
-
var value = random.Next(101);
|
20
|
-
|
21
|
-
Console.WriteLine($"0~100の値を出力:{value}");
|
22
|
-
|
23
|
-
|
24
|
-
|
25
39
|
if (value == 0) break;
|
26
40
|
|
27
|
-
rows[value
|
41
|
+
rows[value % 10].Add(value);
|
28
42
|
|
29
43
|
}
|
30
44
|
|
31
45
|
|
32
46
|
|
33
|
-
for
|
47
|
+
for (var i = 0; i < rows.Length; i++)
|
34
48
|
|
35
49
|
{
|
36
50
|
|
37
|
-
Console.WriteLine($"一の位が{
|
51
|
+
Console.WriteLine($"一の位が{i} : {string.Join(" ", rows[i].Select(v => v.ToString()))}");
|
38
52
|
|
39
53
|
}
|
40
54
|
|
1
values と Values が混在して見苦しいので改名した
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
{
|
6
6
|
|
7
|
-
var
|
7
|
+
var rows = Enumerable.Range(0, 10).Select(_ => new List<int>()).ToArray();
|
8
8
|
|
9
9
|
|
10
10
|
|
@@ -24,13 +24,13 @@
|
|
24
24
|
|
25
25
|
if (value == 0) break;
|
26
26
|
|
27
|
-
|
27
|
+
rows[value - ((value / 10) * 10)].Add(value);
|
28
28
|
|
29
29
|
}
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
foreach (var row in
|
33
|
+
foreach (var row in rows.Select((v, i) => new { Index = i, Values = v }))
|
34
34
|
|
35
35
|
{
|
36
36
|
|