Załóżmy, że chcesz mieć listę wartości i dynamicznie dodawać do niej elementy:
$list = @(„a”,”b”)
$list.Add(„c”)
Niestety, próba dodania elementu kończy się błędem:
Exception calling „Add” with „1” argument(s): „Rozmiar kolekcji jest stały.”
At line:1 char:1
+ $list.Add(„a”)
+ ~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : NotSupportedException
Wszystko dlatego, że lista ma stały rozmiar, co sprawdzisz:
$list.IsFixedSize
Jak obejść problem?
Rozwiązanie 1:
Dodawaj elementy wykorzystując operator += zamiast metodę Add:
$list+=”x”
Rozwiązanie 2:
Skorzystaj z [System.Collections.ArrayList]. Ten typ nie jest stałego rozmiaru i pozwala na dodawanie nowych elementów.
[System.Collections.ArrayList]$ArrayList = @()
$ArrayList.Add(„a”)
$ArrayList.Add(„b”)
$ArrayList.Add(„c”)