У меня есть массив в Powershell со следующими строками:
1, Tgt, 10, Fld
2, XM, 8, Fi
3, TX, 12, Фи
Первый столбец - счетчик строк, второй столбец - тип фильтра, 3-й столбец - счетчик, 4-й столбец - тип действия.
Мне нужно создать хеш-таблицу из 2-го и 3-го столбцов.
Когда я делаю следующее в Powershell, он создает хеш-таблицу, которую я могу использовать.
$z=@()
$z = {
Tgt = 10
XM = 8
TX = 12
}
Но, если я использую foreach, чтобы попытаться сделать то же самое, он создает коллекцию коллекции.
foreach ($b in $arr) {
$z2 += @{$b[1] = $b[2]}
}
Каждый имеет 3 элемента, но хеш-таблица $ z представляет собой {System.Collections.DictionaryEntry,System.Collections.DictionaryEntry,System.Collections.DictionaryEntry}
в то время как хеш-таблица $ z2 является
{{System.Collections.DictionaryEntry},{System.Collections.DictionaryEntry},{System.Collections.DictionaryEntry}}
На $ z можно ссылаться в foreach с помощью $ z.Keys, но я не могу сослаться на то же самое на $ z2. Несмотря на то, что у каждого есть 3 строки, $ z - это массив из 3 строк, но $ z2 - это массив из 3 массивов по 1 строке в каждой. Я хочу, чтобы хеш-таблицы $ z и $ z2 были во всех отношениях идентичны друг другу.
Я уверен, что делаю что-то очевидное и неправильное, пытаясь создать эту хеш-таблицу из существующего массива, но не могу понять, что я делаю неправильно. Любые предложения приветствуются.
Спасибо!