繁体   English   中英

将PowerShell Hashtable和for Loop转换为C#

[英]Convert PowerShell Hashtable and for Loop to C#

努力将Powershell逻辑转换为C#。 我的主要症结是for循环,并将此值转换为: $mProperties.$sFieldQuery.DBFields[$i]

$mProperties = @{}
$sFields = @()
$dbFields = @()
$dbAliasNames = @()

$metaProperties[$sFieldQuery] = @{
                    SFields = $sFields
                    DBFields = $dbFields
                    DBAliasNames = $dbAliasNames
                    DBFieldValues = @()
                    InternalName = ""
                    }

foreach ($sFieldQuery in $mProperties.Keys)
{
    for ($i=0; $i -lt $mProperties.$sFieldQuery.DBAliasNames.Length; $i++)
    {
        $eQuery += ", " + $mProperties.$sFieldQuery.DBFields[$i] + " AS " + $mProperties.$sFieldQuery.DBAliasNames[$i]
    }
}

哈希表点符号在功能上与使用关联索引相同:

$HashTable = @{ "someKey" = "aValue" }

# This
$HashTable."someKey"
# is functionally equivalent to
$HashTable["someKey"]

因此,对于C#中的任何Dictionary类型,只需使用索引运算符[]而不是即可.

Dictionary<string,Dictionary<string,object[]>> mProperties = new Dictionary<string,Dictionary<string,object[]>>();
// populate mProperties...

string eQuery = "";

foreach(string sFieldQuery in mProperties.Keys)
{
    for(int i = 0; i < mProperties[sFieldQuery]["DBAliasNames"].Length; i++)
    {
        eQuery += ", " + mProperties[sFieldQuery]["DBFields"][i] + " AS " + mProperties[sFieldQuery]["DBAliasNames"][i];
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM