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

質問編集履歴

2

追記

2019/03/13 07:50

投稿

kmyzr
kmyzr

スコア305

title CHANGED
File without changes
body CHANGED
@@ -32,7 +32,42 @@
32
32
  Write-Host $($Form.Controls["TextBox_5"].Name) -ForegroundColor Red
33
33
  Write-Host $($Form.Controls[5].Name) -ForegroundColor Red
34
34
  ```
35
+ ### 試したこと
36
+ 現状だとディクショナリ 使って名前で指定できるようにして
37
+ 数値で指定したくなったらValueでArray(object[])にするしか.....
35
38
 
39
+ PowerShellのクラスのプロパティでAdd-memberを使って
40
+ ゲッターセッター風にすることはできるですが
41
+ クラスのメンバーを追加するだけなので....
42
+ クラスのインスタンス自身にインデクサ?を指定されたときの振る舞いを
43
+ 変えることは出来ないですし
44
+
45
+ powershellだと出来ないってことでしょうか?(Add-type で C#取り込み除く)
46
+ ```powershell
47
+ Using NameSpace System.Collections.Generic
48
+ Using NameSpace System.Management.Automation
49
+
50
+ $Dic = [Dictionary[String,PSCustomObject]]::new()
51
+
52
+ $Ar = 0..9 |
53
+ %{
54
+ [PSCustomObject]@{
55
+ Name = "Name$_"
56
+ Text = "Text_$_"
57
+ Disp = "テキスト_$_"
58
+ }
59
+ }
60
+
61
+ $Ar |
62
+ %{
63
+ $Dic.Add($_.Name,$_)
64
+ }
65
+
66
+
67
+ Write-host $Dic["Name5"].Name -ForegroundColor Red
68
+ Write-host $($Dic.Values)[5].Name -ForegroundColor Red
69
+ ```
70
+
36
71
  ### 補足情報(FW/ツールのバージョンなど)
37
72
 
38
73
  Win10

1

修正

2019/03/13 07:50

投稿

kmyzr
kmyzr

スコア305

title CHANGED
File without changes
body CHANGED
@@ -1,9 +1,9 @@
1
1
  ### 前提・実現したいこと
2
-
2
+ オブジェクトを配列にして使っているのですが
3
- インデックスの指定に数値とNameの両方が使えるようにしたいのです
3
+ インデックスの指定に数値とNameの両方が使えるようにしたいのです
4
4
  何を利用したらいいのでしょうか
5
5
 
6
- FormのControls 等目にする機会は多いのですが
6
+ FormのControls 等 目にする機会は多いのですが
7
7
  作り方が全く分かりません。
8
8
  お願い致します。
9
9
 
@@ -25,7 +25,10 @@
25
25
  }
26
26
  }
27
27
 
28
+ <#
28
- # どちらの方法でも取得できる
29
+ どちらの方法でも取得できる
30
+ こんな感じで使えるコレクション?を作りたい
31
+ #>
29
32
  Write-Host $($Form.Controls["TextBox_5"].Name) -ForegroundColor Red
30
33
  Write-Host $($Form.Controls[5].Name) -ForegroundColor Red
31
34
  ```