gpt4 book ai didi

Powershell:通过哈希表计算唯一字符串

转载 作者:行者123 更新时间:2023-12-04 02:24:27 26 4
gpt4 key购买 nike

“它有效——但它是最佳实践吗?”题。在 Perl 中,有一种紧凑的方式来跟踪文件中出现的字符串:将它们存储在哈希表中。例如:

$HashTable{'the string in question'}++;

Perl 增加键 the string in question 的值做多少次。它在跟踪事件的同时确保了唯一的“命中”。只是闲逛,我发现我可以用 Powershell 做同样的事情:
$HashTable['a']++甚至 $Hashtable.a++ (这让我感到惊讶——甚至) $Hashtable."this is a key"++
好的,所以它有效。但是 Powershell 中是否有一种方法被认为是更好的做法?

最佳答案

您的方法看起来相当不错,至少对于 PowerShell 及其哈希表助手而言。请记住,哈希表定义为 @{}不区分大小写。如果您需要区分大小写的哈希表,请像 New-Object System.Collections.Hashtable 一样创建它.

例子:

# case insensitive
$hash = @{}
$hash['a']++
$hash['A']++
$hash

'------------------------'

# case sensitive
$hash = New-Object System.Collections.Hashtable
$hash['a']++
$hash['A']++
$hash

输出:
Name                           Value
---- -----
a 2
------------------------
a 1
A 1

在 C# 中使用 Dictionary<string, int>可能是一种“更好的做法”。这在 PowerShell 中也是可能的,但它不太可能使 PowerShell 中的事情变得“更好”。

PowerShell-ish 解决方案可能是使用 Group-Object -NoElement .这是更好的方法或实践吗?我不知道。这取决于一些因素,包括偏好。这是示例:
'a', 'A', 'foo', 'foo' , 'bar' | Group-Object -NoElement

输出:
Count Name
----- ----
2 a
2 foo
1 bar

关于Powershell:通过哈希表计算唯一字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13357581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com