我对Powershell版本5中的对象创建有疑问。为了简化我的问题,我提供了我想要在功能上实现的确切Java代码。
我知道,除了面向对象之外,Java和Powershell没有任何共同点,我也不在乎如何在语法上实现这一点。
Scanner scan = new Scanner(System.in);
System.out.println("How many argument lists do you want to provide?");
int i = Integer.parseInt(scan.next());
List<List<String>> list = new ArrayList<>();
for(int j = 0; j < i; j++)
{
list.add(new ArrayList<String>()); // this is the exact point if don't know how to substantiate in powershell
list.get(j).add(scan.next());
// more arguments to be entered
}
Powershell中的实际意图是使用Read-Host解析用户提供的参数,并构建包含它们的字符串列表。每个列表应包含一个Powershell命令的参数。
答案 0 :(得分:1)
您应该更多地定义问题,而不仅仅是发布java代码。
但要回答: “如何在PowerShell中实例化未知数量的对象?”
要动态地将字符串添加到数组,请执行以下操作:
$a = @()
$a += Read-Host
在for循环中。
如果您想添加多个字符串,请阅读Powershell Custom Objects。
答案 1 :(得分:0)
您可以使用.NET中的ArrayList:
$a = New-Object System.Collections.ArrayList
$a.Add("Hello")
$a.Add(42)
答案 2 :(得分:0)
我自己找到了解决方案。 这完全等同于我的java代码和我想要实现的目标:
$i = Read-Host -Prompt "How many argument lists do you want to provide?"
$listOfListsOfArguments = New-Object System.Collections.ArrayList
for ($i=1; $i -le $flag; $i++)
{
$Private:localParameterList = New-Object System.Collections.ArrayList
$param = Read-Host -Prompt"argument x:"
$localParameterList.add($param)
#...
$listOfListsOfArguments.add($localParameterList)
}