【发布时间】:2017-01-15 07:17:28
【问题描述】:
在this question 中,我们解决了我们的问题,但有一点我还没有学到。
上述帖子中的cmets以下:
我的目标是 - 根据嵌套数组的索引调用每个文件数据并删除最后三行。所以-
$array = New-Object Sytem.Collections.Arraylist; Get-ChildItem C:\...\test | ForEach-Object { $array += ,@(Get-Content $_.FullName) }; $array[0].removerange($array[0].count-2,2)但它会抛出无法识别 removerange 的错误。我检查了 -$array[0] | gm并且确实不存在 removerange 方法。只需删除和删除。如何进行此操作? - iamsmith41 1 月 11 日 22:14@iamsmith41
Get-Content返回System.Array,而不是System.Collections.ArrayList。前者没有RemoveRange()方法。另外,请不要移动目标。如果其中一个答案解决了您当前问题中描述的问题:请考虑接受该答案。如果您有新问题或后续问题:请发布新问题。 - Ansgar Wiechers 1 月 11 日 23:33好的。我标记了答案。但请告诉我如何完成它(removerange() 方法)。提前致谢。 - iamsmith41 2 天前
$array += ,[Collections.ArrayList]@(Get-Content $_.FullName)应该就足够了。如果您需要进一步的帮助,请发布一个新问题。 - Ansgar Wiechers 2 天前
如何知道上面我必须使用的对象类型是Collections.ArrayList等等?怎么知道这是System.Array而不是System.Collections.ArrayList等?
【问题讨论】:
-
($expression).GetType().FullName或[Type]::GetTypeArray((,($expression)))[0].FullName.