Возврат соответствующего значения из другого массива в PowerShell - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть два массива, заполненных строками, которые являются реляционными. Мне нужно извлечь значение из массива 2 во время итерации по массиву 1 в цикле foreach. Как ты этого добьешься? Вот мой код:

$contracts = @("xytt"
               "deff"
               "mnoo")

$labels = @("London contract"
            "Dubai contract"
            "Glasgow contract")

foreach ($contract in $contracts){
#Do stuff with $contract
#Return label associated to contract object
}

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Я согласен с EBGreen, хеш-таблица больше подходит для этой задачи.

Как и в сценарии Янне Туукканен, этот использует индекс,
но на основе обычного ForEach.

ForEach ($contract in $contracts){
    "{0} - {1}" -f $contract, $labels[$contracts.IndexOf($contract)]
}

Пример вывода:

xytt - London contract
deff - Dubai contract
mnoo - Glasgow contract
0 голосов
/ 27 апреля 2018

Вы можете использовать for цикл и индексную переменную вместо foreach:

for ($i=0; $i -lt $contracts.Length; $i++) {
    $contract = $contracts[$i]
    $label = $labels[$i]
    Write-Host "$contract : $label"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...