14

我是 powershell 的新手,并试图获取 HashTable 的长度(在 for 循环中使用),但我似乎无法获得 HashTable 的长度来输出任何内容。

$user = @{}
$user[0] = @{}
$user[0]["name"] = "bswinnerton"
$user[0]["car"] = "honda"

$user[1] = @{}
$user[1]["name"] = "jschmoe"
$user[1]["car"] = "mazda"

write-output $user.length   #nothing outputs here

for ($i = 0; $i -lt $user.length; $i++)
{
    #write-output $user[0]["name"]
}
4

3 回答 3

26

@{}声明一个 HashTable 而@()声明一个 Array

您可以使用

$user.count

找到lengthHashTable

如果你这样做:

$user | get-member

你可以看到一个对象的所有方法和属性。

$user.gettype()

返回您拥有的对象的类型。

于 2012-11-09T16:31:06.470 回答
4

$user是一个哈希表,所以你应该$user.count改用 user 。

于 2012-11-09T16:30:20.543 回答
1

这不是一个数组,而是一个哈希表。改用.count

write-output $user.count
于 2012-11-09T16:34:49.483 回答