所以这就是我尝试做的事情 - 例如,如果我想在我的程序中使用ArrayList<>
我只是写
...
import java.util.ArrayList
...
然后从那里我可以写ArrayList<String> arr = new ArrayList<String>...
等。
另外,在Python中,我可以编写类似
的内容from numpy.random import randint
再次,在我的程序中,我可以写randint(something)
。
在PowerShell中有相同的方法吗?我想使用System.Collections.ArrayList
,但我无法在线查找任何语法。
答案 0 :(得分:3)
使用using namespace
statement引用名称空间:
using namespace System.Collections
然后,您可以在创建新对象时省略命名空间
$arr = New-Object ArrayList
答案 1 :(得分:1)
您必须为New-Object
创建System.Collections.ArrayList
:
$arr= New-Object System.Collections.ArrayList
New-Object cmdlet创建.NET Framework或COM的实例 对象
之后,您可以使用ArrayList
方法:
$arr.Add('test')
答案 2 :(得分:1)
我会把它扔进去只是为了好玩。首先,创建一个函数:
function New-ArrayList{
New-Object System.Collections.ArrayList
}
接下来创建一个别名:
New-Alias -Name al -Value New-ArrayList
然后使用它:
$myArrayList = al
答案 3 :(得分:1)
最佳选择可能是@laika给出的选项,但您也可以使用Type Accelerators
。这些过去很容易使用,但是从PSv3开始,事情变得更加困难(可能会迫使你使用更好的技术)。内置加速器包括标准.NET类型,例如int
,string
,DateTime
等,以及更加模糊的内容,例如System.Management.ManagementObject
。您可以获得这样的完整列表:
[PsObject].Assembly.GetType("System.Management.Automation.TypeAccelerators")::Get
要创建自己的,请执行以下操作:
[PsObject].Assembly.GetType("System.Management.Automation.TypeAccelerators")::Add('ArrayList',"System.Collections.ArrayList")
然后您可以像这样使用新的加速器:
$arrayList = New-Object ArrayList
$arrayList.Add(1)
$arrayList.Add(2)
$arrayList.Add(3)
$arrayList
1
2
3
请注意,这些仅适用于当前会话,因此每次您想要使用它们时都需要重新创建。