我有一阵子有一个有趣的问题。假设我有功能

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")

我懂了



当我做
$ newFiles.GetType()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array

我怎样才能使其成为“system.collections.generic.list [string]”呢?

谢谢

最佳答案

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

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

gm -inputobject $ files将向您显示数组的成员,“删除”不在该对象类型的方法之列。

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

返回,$ newFiles

10-08 12:56