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