如何在 PowerShell 中为二维数据集实现查找 table?

How can I implement a lookup table in PowerShell for a 2-dimensional dataset?

我正在编写一个金融应用程序,需要执行一个查找 table(对于显示的利率 table),当给定期限和存款时,returns 利率

如何在 PowerShell 中实现此查找 table?

散列 table 的散列 table 满足我的需要

注意:我使用了有序散列tables,所以如果我选择输出 table 对于用户

class Rates
{
    $ratesTable=[ordered]@{}

    Rates()
    {
        $this.ratesTable.add(12,[ordered]@{1000=.02;10000=.021;20000=.022;50000=.023;100000=.024})
        $this.ratesTable.add(24,[ordered]@{1000=.03;10000=.031;20000=.032;50000=.033;100000=.034})
        $this.ratesTable.add(36,[ordered]@{1000=.04;10000=.041;20000=.042;50000=.043;100000=.044})
        $this.ratesTable.add(48,[ordered]@{1000=.05;10000=.051;20000=.052;50000=.053;100000=.054})
        $this.ratesTable.add(60,[ordered]@{1000=.06;10000=.061;20000=.062;50000=.063;100000=.064})
    }

    [double] GetRate([int]$term, [int] $deposit)
    {
        $relevantMin = 0
        $found = $false
        $mins = $this.ratesTable.$term

        if ($mins)
        {

            ForEach ($min in $mins.GetEnumerator())
            {
                if ($deposit -gt $min.Name)
                {
                    $relevantMin = $min.Name
                    $found = $true
                }
                else
                {
                    break
                }
            }
        }

        if ($found)
        {
            return [double](($this.ratesTable.$term).$relevantMin)
        }
        else
        {
            return [double](-1)
        }
    }
}

cls

$rate = [Rates]::new()

#example - valid term and deposit
$rate.GetRate(36,32000)

#example - valid term and deposit
$rate.GetRate(12,24000)

#example - valid term and invalid deposit
$rate.GetRate(36,500)

#example - invalid term and valid deposit
$rate.GetRate(72,16000)

#example - valid term and valid deposit
$rate.GetRate(60,10000000)

输出

0.042
0.022
-1
-1
0.064