回答編集履歴

4

修正漏れ

2017/01/26 04:18

投稿

tamoto
tamoto

スコア4103

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- "00"から始まり、"99"までは2桁で出力、3桁目以降は順次追加し、[0-Z]の範囲の列とする、先頭は1始まりとする、という解釈で作成してみました。
7
+ "00"から始まり、"99"までは2桁で出力、3桁目以降は順次追加し、[1-Z]の範囲の列とする、先頭は1始まりとする、という解釈で作成してみました。
8
8
 
9
9
 
10
10
 

3

0はいらないということなので修正

2017/01/26 04:18

投稿

tamoto
tamoto

スコア4103

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
 
50
50
 
51
- foreach (var result in DigitAlpha().SelectMany(_ => new[] { "0" }.Concat(array), (x, y) => x + y))
51
+ foreach (var result in DigitAlpha().SelectMany(_ => array, (x, y) => x + y))
52
52
 
53
53
  yield return result;
54
54
 

2

確認用に範囲制限してたのを直し忘れてたので修正

2017/01/26 04:17

投稿

tamoto
tamoto

スコア4103

test CHANGED
@@ -36,9 +36,9 @@
36
36
 
37
37
  {
38
38
 
39
- var array = Enumerable.Range('1', 2).Concat(Enumerable.Range('A', 2))
39
+ var array = Enumerable.Range('1', 9).Concat(Enumerable.Range('A', 26))
40
40
 
41
- .Select(x => ((char)x).ToString())
41
+ .Select(x => ((char)x).ToString());
42
42
 
43
43
 
44
44
 

1

全面書き換え

2017/01/26 04:14

投稿

tamoto
tamoto

スコア4103

test CHANGED
@@ -1,27 +1,63 @@
1
- こんにちは。
1
+ (01/26 全面書き換え)
2
2
 
3
- 数列って、文字入ってる以上は文字列の配列を期待しているんですよね?
3
+ やや無理やりな感じもあります……
4
4
 
5
5
 
6
6
 
7
- 36進変換とかは考えず単純に作だけなら以下のような感じで作れますうでしょう?
7
+ "00"ら始まり、"99"まで2桁で出力3桁目以降は順次追加し、[0-Z]の範囲の列とする、先頭は1始りととい解釈作成てみました。
8
8
 
9
9
 
10
10
 
11
11
  ```csharp
12
12
 
13
- var digit = Enumerable.Range('0', 10);
13
+ public IEnumerable<string> Sequence()
14
14
 
15
- var alpha = Enumerable.Range('A', 26);
15
+ {
16
16
 
17
- var chars = digit.Concat(alpha).Select(x => (char)x);
17
+ var digit = Enumerable.Range(0, 100).Select(x => $"{x, 0:00}");
18
18
 
19
19
 
20
20
 
21
- var sequence = from x in chars
21
+ foreach (var result in digit)
22
22
 
23
- from y in chars
23
+ yield return result;
24
24
 
25
+
26
+
27
+ foreach (var result in DigitAlpha().SelectMany(_ => digit, (x, y) => x + y))
28
+
29
+ yield return result;
30
+
31
+ }
32
+
33
+
34
+
35
+ private IEnumerable<string> DigitAlpha()
36
+
37
+ {
38
+
39
+ var array = Enumerable.Range('1', 2).Concat(Enumerable.Range('A', 2))
40
+
25
- select new string(new[] {x, y});
41
+ .Select(x => ((char)x).ToString())
42
+
43
+
44
+
45
+ foreach (var result in array)
46
+
47
+ yield return result;
48
+
49
+
50
+
51
+ foreach (var result in DigitAlpha().SelectMany(_ => new[] { "0" }.Concat(array), (x, y) => x + y))
52
+
53
+ yield return result;
54
+
55
+ }
26
56
 
27
57
  ```
58
+
59
+
60
+
61
+ そのままだと無限に列挙するので適当にTakeで切ってください。
62
+
63
+