PowerShell转换从函数返回的值.怎么避免这个?

ale*_*2k8 5 powershell return-value

我试图从PowerShell函数返回List <T>,但得到以下之一:

  1. null - 表示空列表
  2. System.Int32 - 用于包含一个元素的列表
  3. System.Object [] - 用于包含更多元素的列表

码:

function CreateClrList
{
    $list = New-Object "System.Collections.Generic.List``1[System.Int32]"
    $list.Add(3)
    $list
}

Write-Host (CreateClrList).GetType()
Run Code Online (Sandbox Code Playgroud)

小智 9

是的,powershell展开所有收藏品.一种解决方案是使用一元逗号返回包含真实集合的集合:

function CreateClrList
{
    $list = New-Object "System.Collections.Generic.List``1[System.Int32]"
    $list.Add(3)
    ,$list
}
Run Code Online (Sandbox Code Playgroud)

  • Nooooooooooooooooooo!但是感谢你的解决方法 (3认同)