首页 > 解决方案 > Powershell 使用 get-random 组合数组

问题描述

你好下面是我的瞬时代码..

它从一个列表中随机抽取七顿“餐食”,然后在几天内将它们排列成每周的列表排序。

# 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]
    }

}

我正在尝试使它可以与更多这样的数组结合使用:

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]
    }

}

所以它确实将它们结合起来并从它们中取出 RANDOM,但我可以设置标准,例如它必须至少从每个“列表”中具有一个。完美的应该是:每周至少一次 -> 肉、鱼、蔬菜,然后其余的从第一个列表中随机...

我希望你们能帮助我:)

亲切的问候亚历克斯

标签: powershell

解决方案


尽管这可能不是您正在寻找的内容,但您可以尝试以下方法:

{
# 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)

希望能帮助到你,


推荐阅读