[解決済み】Array.Add vs +=.
質問
PowerShellの配列で面白い挙動を発見しました、つまり、配列を以下のように宣言した場合です。
$array = @()
そして、これにアイテムを追加するために
$array.Add("item")
メソッドを使用すると、次のようなエラーが発生します。
1 つの引数で "Add" を呼び出す例外: "Collection was of fixed size.".Add" を呼び出す例外が発生しました。
しかし
$array += "item"
この場合、アイテムは問題なく受け入れられ、quot;fixed size"の制限も適用されないようです。
これはなぜでしょうか?
解決方法は?
を使用する場合
$array.Add()
-メソッドを使用すると、既存の配列に要素を追加しようとしています。配列はサイズが固定された集合体なので、拡張できないためエラーになります。
$array += $element
を作成します。
新しい
配列は、古い配列と同じ要素に新しい項目を加えたもので、 この新しい大きな配列が、古い配列に代わって
$array
-変数
配列に要素を追加するには、+= 演算子を使用します。このとき 使用 Windows PowerShell は、実際に新しい配列を作成します。 元の配列に、追加した値を加えたものです。たとえば、次のような要素を追加します。 変数$aの配列に200の値を入力します。
$a += 200
出典 配列について
+=
は高価な操作なので、多くの項目を追加する必要がある場合は、できるだけ少ない操作で追加するようにします。
$arr = 1..3 #Array
$arr += (4..5) #Combine with another array in a single write-operation
$arr.Count
5
それが不可能な場合は、次のような効率的なコレクションを使用することを検討してください。
List
または
ArrayList
(他の回答を参照)。
関連
-
[解決済み] Scala:Arrayに要素を追加する最良の方法は何ですか?
-
[解決済み] Reactでオブジェクトの配列をマップする方法
-
[解決済み] デリミタを使って文字列をスライスする方法
-
[解決済み] PowerShellの配列から重複する値を削除する
-
[解決済み】Swiftで配列を連結またはマージするにはどうすればよいですか?
-
[解決済み】空のスライスを初期化する正しい方法
-
[解決済み】Bashで配列の要素を別行動で表示する?
-
[解決済み】Bashでスペースで区切られた文字列を配列に読み込む
-
[解決済み】定数配列の宣言
-
[解決済み】Swiftで型付き配列を拡張するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン