文文小星的blog
asp.net技术,C#,atlas

 

如下我们创建一个hashtable

$hash=@{"name"="ff"}
$hash.Add("dd","fffff");

在c#中我们使用下面的句子进行遍历

foreach(DictionaryEntry   de   in   yourHashTable) 
  {

 

}

但是在powershell 中此法行不通。

我使用了从下方法

1.使用foreach 遍历keys

foreach($obj in $hash.Keys)
{
    "key:"+$obj
    "value:"+$hash[$obj];
}

2.使用enumerator

[System.Collections.IEnumerator]$keys=$hash.Keys.GetEnumerator();
while($keys.MoveNext())
{
    "key:"+$keys.Key;
    "value:"+$keys.Value;
}

3.使用hashtable的copyTo

[System.Object[]]$array=New-Object System.Object[] -ArgumentList $hash.Count;
$hash.CopyTo($array,0);
foreach($item in $array)
{
  "key:"+$item.Key;
  "value:"+$item.Value;
}

我相信你已经很清楚的知道powershell中hashtable的遍历了。

如果需要了解hashtable的相关知识,请访问:http://technet.microsoft.com/zh-cn/library/ee692803(en-us).aspx

 

下面我把全部代码贴出:

$hash=@{"name"="ff"}
$hash.Add("dd","fffff");

foreach($obj in $hash.Keys)
{
    "key:"+$obj
    "value:"+$hash[$obj];
}

[System.Collections.IEnumerator]$keys=$hash.Keys.GetEnumerator();
while($keys.MoveNext())
{
    "key:"+$keys.Key;
    "value:"+$keys.Value;
}

[System.Object[]]$array=New-Object System.Object[] -ArgumentList $hash.Count;
$hash.CopyTo($array,0);
foreach($item in $array)
{
  "key:"+$item.Key;
  "value:"+$item.Value;
}

输出:

key:name
value:ff
key:dd
value:fffff
key:name
value:ff
key:dd
value:fffff
key:name
value:ff
key:dd
value:fffff

posted on 2010-04-22 12:23  冯文元  阅读(4262)  评论(0编辑  收藏  举报