У меня есть следующий пример кода в функции:
[array]$ARR = $null
foreach ($file in $fileTable.identical)
{
[hashtable]$HT=@{
'FileName' = $file.Name
'AppName' = $file.App
'GroupName' = $file.Group
'Valid' = $true
}
$ARR += $HT
}
foreach ($file in $fileTable.removed)
{
[hashtable]$HT=@{
'FileName' = $file.Name
'AppName' = $file.App
'GroupName' = $file.Group
'Valid' = $false
}
$ARR += $HT
}
foreach ($file in $fileTable.modified)
{
[hashtable]$HT=@{
'FileName' = $file.Name
'AppName' = $file.App
'GroupName' = $file.Group
'Valid' = $false
}
$ARR += $HT
}
return $ARR
+ еще 3 цикла foreach для других $ fileTable. [Properties], где 'Valid' = $ false.
Вместо того, чтобы повторять блок кода несколько раз, я хочу сделать что-то вроде:
foreach (($file in $fileTable.removed) -and ($file in $fileTable.modified))
{
[hashtable]$HT=@{
'FileName' = $file.Name
'AppName' = $file.App
'GroupName' = $file.Group
'Valid' = $false
}
}
Таким образом, только переменная, отличная в хеш-таблице, будет $ value.
$ fileTable - это объект pscustomobject с несколькими пользовательскими свойствами, такими как идентичные, измененные, добавленные, удаленные.
Я знаю, что то, что я хочу, невозможно в циклах foreach, но я ищу аналогичное решение для уменьшения количества строк кода. Любая помощь будет оценена :)
Спасибо!