Доброе утро,
Я уверен, что это может быть недостатком полного понимания того, как работает доступ к 2-мерным массивам в PowerShell, но я испытываю странное поведение:
Вотмой код:
$testarray = @( ("a",1),("b",2))
echo $testarray[0]
echo "____________"
foreach ($test in $testarray)
{
echo $test[0]
}
Теперь, когда я запускаю это, я ожидаю, что оба эха будут производить A1, и я настроил 2D-массив, где элемент 0 состоит из 2 значений A и 1. Но когда я перебираюэто я не получаю такие же результаты.
По-разному ли foreach относится к этим массивам?В теории я должен иметь возможность получить доступ к значению 1, набрав $test[0][1]
.
Это ожидаемое поведение?Я склонен думать, что не до конца понимаю, что foreach делает с массивом.
Причина, по которой я использую 2D-массив, заключается в том, что я хотел бы сохранить FileObject в первом элементе, а затемдружественное имя во втором, например:
$SLFile = (Get-ChildItem -Path $folder -Filter "file1_*.csv" | sort LastWriteTime -Descending)[0]
$SOHFile = (Get-ChildItem -Path $folder -Filter "file2_*.csv" | sort LastWriteTime -Descending)[0]
#Add to an array
$fileArray = @( ($SLFile,"FriendlyFile1Name"), ($SOHFile, "FriendlyFile2Name") )
Когда я делал это, я продолжал получать такое поведение, поэтому решил провести некоторое тестирование (но на самом деле не достиг никакого прогресса, поэтому я и сейчас здесь:))
Любое руководство будет высоко ценится.
Большое спасибо, Бен