У меня есть строка, которую я извлекаю из XML, которая ДОЛЖНА содержать целочисленные значения через запятую. В настоящее время я использую это для преобразования строки в массив и проверки каждого члена массива, чтобы увидеть, является ли он Int. В конечном счете, я все еще хочу массив в конце, так как у меня также есть массив кодов успеха по умолчанию, и я хочу объединить их. Тем не менее, я никогда не находил такой шаблон установки условия проверки истинным, затем зацикливания и, возможно, установки его в ложное значение, чтобы быть таким элегантным. Итак, мне интересно, есть ли лучший подход. Я имею в виду, что это работает, и это быстро, и код легко читается, поэтому в некотором смысле нет причин его менять, но если есть лучший способ ...
$supplamentalSuccessCode = ($string.Split(',')).Trim()
$validSupplamentalSuccessCode = $true
foreach ($code in $supplamentalSuccessCode) {
if ($code -as [int] -isNot [int]) {
$validSupplamentalSuccessCode = $false
}
}
РЕДАКТИРОВАТЬ: Чтобы уточнить, этот пример является довольно конкретным, но мне любопытно более общее решение. Итак, представьте, что массив может содержать значения, которые необходимо проверить по справочной таблице, или локальные пути к дискам, которые необходимо проверить с помощью Test-Path. Поэтому, в общем, мне интересно, есть ли лучшее решение, чем Установить переменную true, foreach, если тест не пройден, установить переменную false logic.
Кроме того, я поиграл с циклом while, но в большинстве ситуаций я хочу найти ВСЕ плохие значения, а не выходить из проверки первого плохого, чтобы я мог предоставить пользователю полную ошибку в журнале. Таким образом, я использую подход цикла ForEach.