質問するログイン新規登録

回答編集履歴

4

修正漏れ

2017/01/26 04:18

投稿

tamoto
tamoto

スコア4368

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  (01/26 全面書き換え)
2
2
  やや無理やりな感じもありますが……
3
3
 
4
- "00"から始まり、"99"までは2桁で出力、3桁目以降は順次追加し、[0-Z]の範囲の列とする、先頭は1始まりとする、という解釈で作成してみました。
4
+ "00"から始まり、"99"までは2桁で出力、3桁目以降は順次追加し、[1-Z]の範囲の列とする、先頭は1始まりとする、という解釈で作成してみました。
5
5
 
6
6
  ```csharp
7
7
  public IEnumerable<string> Sequence()

3

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

2017/01/26 04:18

投稿

tamoto
tamoto

スコア4368

answer CHANGED
@@ -23,7 +23,7 @@
23
23
  foreach (var result in array)
24
24
  yield return result;
25
25
 
26
- foreach (var result in DigitAlpha().SelectMany(_ => new[] { "0" }.Concat(array), (x, y) => x + y))
26
+ foreach (var result in DigitAlpha().SelectMany(_ => array, (x, y) => x + y))
27
27
  yield return result;
28
28
  }
29
29
  ```

2

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

2017/01/26 04:17

投稿

tamoto
tamoto

スコア4368

answer CHANGED
@@ -17,8 +17,8 @@
17
17
 
18
18
  private IEnumerable<string> DigitAlpha()
19
19
  {
20
- var array = Enumerable.Range('1', 2).Concat(Enumerable.Range('A', 2))
20
+ var array = Enumerable.Range('1', 9).Concat(Enumerable.Range('A', 26))
21
- .Select(x => ((char)x).ToString())
21
+ .Select(x => ((char)x).ToString());
22
22
 
23
23
  foreach (var result in array)
24
24
  yield return result;

1

全面書き換え

2017/01/26 04:14

投稿

tamoto
tamoto

スコア4368

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