Powershell Combine Arrays с get-random - PullRequest
0 голосов
/ 24 мая 2018

Здравствуйте. Ниже приведен мой краткий код.

Он вынимает семь случайных «блюд» из списка, а затем распределяет их по недельным спискам в днях.

# Food selector for the week!
#random Stuff mixed for every day.

Enum Food
{#Add Food here:
    Tacos
    Pizza
    Quesedias
    Lasagne
    Älplermakkaronen
    Apfelwähe
    Apprikosenwähe
    Rabarberwähe
    Käsekuchen
    Pasta
    Ravioli
    Empanadas
    Hamburger

}
function Food {
    $foodsOfWeek = [Enum]::GetValues([Food]) | Get-Random -Count 7

    foreach ($day in [Enum]::GetValues([DayOfWeek])) {
        ([string]$day).Substring(0, 3) + ': ' + $foodsOfWeek[[DayOfWeek]::$day]
    }

}

Iя пытаюсь сделать так, чтобы его можно было объединить с большим количеством массивов, таких как:

Enum Food
{#Add Food here:
    Tacos
    Pizza
    Quesedias
    Lasagne
    Älplermakkaronen
    Apfelwähe
    Apprikosenwähe
    Rabarberwähe
    Käsekuchen
    Pasta
    Ravioli
    Empanadas
    Hamburger
}
Enum Food2
{#Add Fish Stuff here:
    Whatever Fish I want^^ :)
}

#and an array for meat(like steak)
.....

#an array for som healthy food!
.....



function Food {
    $foodsOfWeek = [Enum]::GetValues([Food]) | Get-Random -Count 7

    foreach ($day in [Enum]::GetValues([DayOfWeek])) {
        ([string]$day).Substring(0, 3) + ': ' + $foodsOfWeek[[DayOfWeek]::$day]
    }

}

Таким образом, он объединяет их и отбирает случайные значения из всех, но я могу установить критерии, как будто они должны иметь хотя бы один изкаждый «список».Идеально было бы: каждую неделю хотя бы раз -> Мясо, Рыба, Овощи, а затем все остальное случайно из первого списка ...

Надеюсь, вы, ребята, можете мне помочь:)

С наилучшими пожеланиями, Алекс

1 Ответ

0 голосов
/ 24 мая 2018

Хотя это может быть не совсем то, что вы ищете, вы можете попробовать следующее:

{
# Food selector for the week!
#random Stuff mixed for every day.

Enum FastFood
{#Add Food here:
Tacos
Pizza
Quesedias
Lasagne
Älplermakkaronen
Apfelwähe
Apprikosenwähe
Rabarberwähe
Käsekuchen
Pasta
Ravioli
Empanadas
Hamburger

}

Enum Meat
{#Add Food here:
Steak
Chop
Beaf
Lamb
Pork
Chicken
}

function Food {
#either
  $Foods =  [Enum]::GetValues([FastFood]) + [Enum]::GetValues([Meat])
#or
  $Foods =  [Enum]::GetValues([FastFood])
  $Foods += [Enum]::GetValues([Meat])

$foodsOfWeek = $Foods | Get-Random -Count 7

foreach ($day in [Enum]::GetValues([DayOfWeek])) {
    ([string]$day).Substring(0, 3) + ': ' + $foodsOfWeek[[DayOfWeek]::$day]
}

Конечно, переменная $ Foods - это не тип Enum, а коллекция объектов, однако вы можете тогдагенерировать случайную «еду» дня и иметь возможность расширить список по мере добавления дополнительных категорий.Чтобы получить доступ к определенной записи, вы можете проиндексировать следующим образом: $ Foods [10]

Текущая переменная содержит 19 элементов ($ Foods.count)

Надеюсь, это поможет,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...