有没有办法在 PowerShell 中定义 Set data-structure ?
在计算机科学中,集合是一种抽象数据类型,可以存储某些值,没有任何特定顺序,也没有重复值。它是有限集的数学概念的计算机实现。与大多数其他集合类型不同,不是从集合中检索特定元素,而是通常测试集合中成员资格的值。
我需要使用数据结构作为密钥库:
答案 0 :(得分:30)
您可以使用System.Collections.Generic
下的.NET HashSet
类:
$set = New-Object System.Collections.Generic.HashSet[int]
答案 1 :(得分:5)
如果您喜欢使用本机PowerShell类型,则可以使用HashTable
并忽略键值:
# Initialize the set
$set = @{}
# Add an item
$set.Add("foo", $true)
# Or, if you prefer add/update semantics
$set["foo"] = $true
# Check if item exists
if ($set.Contains("foo"))
{
echo "exists"
}
# Remove item
$set.Remove("foo")
答案 2 :(得分:1)
如果要在具有相对较快的添加,删除和查找操作的数组中仅存储唯一值,则需要使用哈希集。可以将其创建为-
$set = [System.Collections.Generic.HashSet[int]]@()