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

回答編集履歴

2

LINQを使う方法

2024/03/05 06:13

投稿

KOZ6.0
KOZ6.0

スコア2736

answer CHANGED
@@ -1,4 +1,10 @@
1
1
  Dim stack(20) As Stack(Of String)
2
2
 
3
3
  とやると、Stack(Of String) の配列が 21個できます。(20個ではないです。)
4
- 入れ物ができるだけなので、初期化するには For 文で回すしかないと思います。
4
+ 入れ物ができるだけなので、初期化するには For 文で回すしかないと思います。
5
+
6
+ ## 追記
7
+
8
+ Dim stacks As Stack(Of String)() = Enumerable.Range(1, 20).Select(Function(i) New Stack(Of String)()).ToArray()
9
+
10
+ で一発で代入できました。

1

まちがい

2024/03/05 05:57

投稿

KOZ6.0
KOZ6.0

スコア2736

answer CHANGED
@@ -1,10 +1,4 @@
1
1
  Dim stack(20) As Stack(Of String)
2
2
 
3
3
  とやると、Stack(Of String) の配列が 21個できます。(20個ではないです。)
4
- 入れ物ができるだけなので、初期化するには For 文で回すしかないと思います。
4
+ 入れ物ができるだけなので、初期化するには For 文で回すしかないと思います。
5
-
6
- Linq を使って
7
-
8
- Dim stack As Stack(Of String)() = Enumerable.Repeat(New Stack(Of String), 20).ToArray()
9
-
10
- このように書くと20個の配列にインスタンス化された Stack(Of String) が入ります。