Когда передается массив целых чисел, переменная $ _ равна нулю? - PullRequest
2 голосов
/ 07 октября 2011

Взять это как пример:

$var = "one","two","three"
0..2 | select-object $var[$_]

Index operation failed; the array index evaluated to null.
At line:1 char:27
+ 0..2 | select-object $var[ <<<< $_]
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArrayIndex

Почему $ _ равен нулю?

Ответы [ 3 ]

4 голосов
/ 07 октября 2011

Я не могу понять, почему вы используете select-object

попробуйте это:

$var = "one","two","three"
0..2 | % { $var[$_]}
2 голосов
/ 07 октября 2011

Вы также можете использовать select-object другим способом:

$var | select -Index (0..2)

И, между прочим, если все, что вы хотите сделать, это извлечь элемент из массива, вы можете сделать нарезку массива:

$var[0..2]
1 голос
/ 07 октября 2011

Если вы хотите использовать select-object, вам нужно создать хеш-таблицу, то есть вычисляемое свойство, и дать ему имя и ключи выражения. Результатом будут объекты с одним свойством var в следующем примере

0..2 | select @{name='var';expression={$var[$_]}}

var
---
one
two
three
...