gpt4 book ai didi

generics - 如何在 PowerShell 中向下转换函数的返回值?

转载 作者:行者123 更新时间:2023-12-02 08:00:59 25 4
gpt4 key购买 nike

有一段时间我遇到了一个有趣的问题。假设我有这个功能

function GetAllFiles($creds, $fld){
$newFiles = New-Object "system.collections.generic.list[string]"
... other stuff which adds entires
return $newFiles
}

当我执行时在调用方

$files = GetAllFiles $creds $fld
$files.Remove("AnExistingEntry")

我明白了

dir-ls.ps1:Method invocation failed because [System.Object[]] doesn't contain a meth od named 'Remove'.

当我这样做时$newFiles.GetType()

IsPublic IsSerial Name                                     BaseType                
-------- -------- ---- --------
True True Object[] System.Array

如何将其恢复为“system.collections.generic.list[string]”?

谢谢

最佳答案

该对象类型没有“删除”方法。我认为您正在查看元素的成员:

$文件| gm 将为您获取数组第一个元素的成员(管道将展开数组,最终您对第一个元素执行 gm 操作。

gm -inputobject $files 将显示数组的成员,并且“remove”不属于该对象类型的方法。

在您的 return 语句中尝试此操作,看看它是否保持数组完整,而不是在返回时展开它。

返回,$newFiles

关于generics - 如何在 PowerShell 中向下转换函数的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5393095/

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