回答編集履歴

2

見直しキャンペーン中

2023/08/15 15:32

投稿

TN8001
TN8001

スコア9326

test CHANGED
@@ -1,9 +1,9 @@
1
- 多次元配列でも普通に`foreach`できます。
1
+ 多次元配列でも普通にforeachできます。
2
2
  [配列での foreach の使用 - C# プログラミング ガイド | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/using-foreach-with-arrays)
3
3
 
4
4
  あまり知られていないのは、多次元で全列挙することが少ないからかもしれません。
5
5
 
6
- 1次元配列は`IEnumerable<T>`を実装しますが多次元配列は`IEnumerable`のため、Linqを使用するには`Cast`してください(なんで`<T>`がないかは知りません^^;
6
+ 1次元配列は`IEnumerable<T>`を実装しますが多次元配列は`IEnumerable`のため、LINQを使用するには`Cast`してください(なんで`<T>`がないかは知りません^^;
7
7
  [Array クラス (System) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.array)
8
8
 
9
9
  ```cs

1

見直しキャンペーン中

2023/07/29 11:04

投稿

TN8001
TN8001

スコア9326

test CHANGED
@@ -1,65 +1,34 @@
1
1
  多次元配列でも普通に`foreach`できます。
2
-
3
2
  [配列での foreach の使用 - C# プログラミング ガイド | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/using-foreach-with-arrays)
4
3
 
5
4
  あまり知られていないのは、多次元で全列挙することが少ないからかもしれません。
6
5
 
7
-
8
-
9
6
  1次元配列は`IEnumerable<T>`を実装しますが多次元配列は`IEnumerable`のため、Linqを使用するには`Cast`してください(なんで`<T>`がないかは知りません^^;
10
-
11
7
  [Array クラス (System) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.array)
12
8
 
13
-
14
-
15
- ```C#
9
+ ```cs
16
-
17
10
  int[,] numbers2D = { { 1, 2, 3, }, { 4, 5, 6, }, { 7, 8, 9, }, };
18
-
19
11
  foreach (var i in numbers2D)
20
-
21
12
  {
22
-
23
13
  Console.Write($"{i} "); // 1 2 3 4 5 6 7 8 9
24
-
25
14
  }
26
-
27
15
  Console.WriteLine();
28
16
 
29
17
 
30
-
31
-
32
-
33
18
  var testMDArray = new bool[4, 3, 2]
34
-
35
19
  {
36
-
37
20
  {
38
-
39
21
  { true, true, }, { true, true, }, { true, true, },
40
-
41
22
  },
42
-
43
23
  {
44
-
45
24
  { true, true, }, { true, true, }, { true, true, },
46
-
47
25
  },
48
-
49
26
  {
50
-
51
27
  { true, true, }, { true, true, }, { true, true, },
52
-
53
28
  },
54
-
55
29
  {
56
-
57
30
  { true, true, }, { true, false, }, { true, true, },
58
-
59
31
  },
60
-
61
32
  };
62
-
63
33
  Console.WriteLine(testMDArray.Cast<bool>().Any(x => !x)); // True
64
-
65
34
  ```