В отдельном файле создайте перечисление (для удобства чтения):
Enum Food
{
Tacos
Pizza
...
}
В вашем сценарии поставьте этот файл в точку, чтобы он был доступен: . 'C:\myenum.ps1'
Затемв вашей функции:
function Get-Food {
[Enum]::GetValues([Food]) | Get-Random -Count 7
}
Это вернет 7 случайных продуктов из вашего списка.В качестве дополнительного бонуса вы можете назначить номер каждому продукту и получить эту ссылку.(Tacos = 5
и доступ к нему как [Food]::Tacos
, который можно рассматривать как строку или целое число)
Чтобы включить день:
function Get-Food {
$foodsOfWeek = [Enum]::GetValues([Food]) | Get-Random -Count 7
foreach ($day in [Enum]::GetValues([DayOfWeek])) {
([string]$day).Substring(0, 3) + ': ' + $foodsOfWeek[$day]
}
}
Объяснение:
Функция извлекает все значения (Tacos, Pizza и т. Д.) Из вашего пользовательского перечисления [Food]
, а затем случайным образом выбирает 7 из них для помещения в массив, который мы сохраняем в $foodsOfWeek
.
.точка, нам нужно пройтись по дням недели (системное встроенное перечисление [DayOfWeek]
).Мы приводим тип к строке, чтобы мы могли вызвать метод .Substring()
, чтобы получить первые 3 символа и добавить :
для форматирования.
Наконец, мы получаем доступ к массиву $foodOfWeek
, используя [DayOfWeek]
перечисление с дней соотносится с числами 0-6 (размер нашего массива).
(DayOfWeek.Sunday == 0) && (DayOfWeek.Sunday == "Sunday")) == true