PowerShell массив / индекс / переменная - PullRequest
0 голосов
/ 21 февраля 2019

Приведенный ниже код проверяет в выпадающем списке, какой элемент был выбран, а затем ищется в нескольких массивах, и, как только он будет найден, цикл прерывается через разрыв, и я получаю правильную информацию в массиве "` $$ ($.name) ".

$search = $CreateNewUserFormDropDownBoxLocation.SelectedItem.Split('-')[$($CreateNewUserFormDropDownBoxLocation.SelectedItem.Split('-').Count - 1)].Trim() + '*'

$AllLocations = (Get-Variable -Include USPennsylvaniaAve, USSixthStreet, USRodeoDrive, USOneMicrosoftWay,`
                    USNorthTantauAvenue, USMarketStreet, USMainStreet, USEmilyDrive,`
                    USCalle8, USBroadway, US18thStreetNW, UKOxfordStreet, UKDowningStreet,`
                    UKBondStreet, FRRuedeRivoli, FRChampsElysees, CHBahnhofstrasse,`
                    CA17thAvenue) | ? {$_.value -is [array]}

foreach ($Array in $AllLocations) {
    if ($array.value -like $search) {
        break
    }
}
$test = "`$$($array.name)"

Проблема в том, что переменная $test содержит правильный массив, и мне интересно работать с индексом (надеюсь, я правильно говорю).

Например, после запуска кода и ввода $test результат будет, например, $USMarketStreet, который является одним из моих массивов.

Если я пытаюсь получить первый индекс, набрав $test[0]Я не получаю ожидаемое содержимое из массива, оно дает мне $.

Если я введу $test[0..4], я получу:

$
U
S
M
a

Мое намерение состояло в том, чтобы получить первыйключ из массива, но вместо этого я получаю первый символ из имени массива.

Есть ли хитрость, как я могу получить к нему?Я также пытался поиграть с $array и $array.value, но безуспешно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...