Are PowerShell Arrays just .NET Arrays?
.net, arrays, powershell, string
Solution
When you specify:
$string_list = @()
You have given PowerShell no type info so it creates an array of System.Object which is an array that can hold any object:
PS> ,$string_list | Get-Member
TypeName: System.Object[]
Try specifying a specific array type (string array) like so:
PS> [string[]]$string_list = @()
PS> ,$string_list | Get-Member
TypeName: System.String[]
Problem
I am creating an array of string objects in PowerShell which needs to be passed into an Xceed zip library method which expects a string[], but I get an error everytime. It makes me wonder if the PowerShell array is something other than a .NET array. Here is some code: ``` $string_list = @() foreach($f in $file_list) { $string_list += $f.FullName } [Xceed.Zip.QuickZip]::Zip("C:\new.zip", $true, $false, $false, $string_list) ``` The error I get says "An error occurred while adding files to the zip file." If I hard code in values like this it works: ``` [Xceed.Zip.QuickZip]::Zip("C:\new.zip", $true, $false, $false, "test.txt", "test2.txt", "test3.txt") ``` Can someone help me figure this out? I can't understand what the difference would be... EDIT: I have tested and confirmed that my $string_list array is composed of System.String objects