gpt4 book ai didi

powershell - 在PowerShell中使用.NET集合(ArrayList,List等)的小技巧

转载 作者:行者123 更新时间:2023-12-03 14:21:40 28 4
gpt4 key购买 nike

我刚刚意识到了这一点,并且已经学到了很难的方法,所以我想分享一下。考虑您具有以下字符串列表:

>$list = New-Object -TypeName System.Collections.Generic.List[string]
>$list.Add("x")
>$list.Add("yy")
>$list.Add("zzz")
>$list
x
yy
zzz

现在,如果要获取列表中的项目数,则可以访问.Count属性,它会为您提供预期的“3”。
>$list.Count
3

但是,有时通过访问.Length而不是.Count会犯错误。在其他语言(例如Python或C#)中,您会收到一条错误消息,指出此属性不可用。但是在PowerShell中,事实证明,如果在该对象上找不到它,它将遍历所包含的对象并访问它们的属性。因此,您最终获得了一份长度 list !惊喜!!
>$list.Length
1
2
3

您甚至可以调用方法!
>$list.ToUpper()
X
YY
ZZZ

请注意,正如我尝试过的那样,此“功能”也适用于System.Collections.ArrayList。但是它不适用于PowerShell的内置数组类型。

这个“功能”叫什么?为什么要这样设计?这非常令人惊讶且容易出错。

最佳答案

Keith Hill在评论中提到,这是V3中称为成员枚举的新功能。

请参阅devblogs.microsoft.com上的“New V3 Language Features”。

关于powershell - 在PowerShell中使用.NET集合(ArrayList,List等)的小技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929896/

28 4 0