Arrays and Hash Tables

When I import a CSV I get an input like this

GivenName  Surname  Name

----------------  ------------  --------

Billy               Tester       W123456

Sally              Trainer     W123457

So is that a Hash table?  I'm trying to create a bunch of AD accounts that will always be the same, adding the support team to each new customers domain.  I wrote this script, in the past I would have imported a csv file but I want the script to be a single file with the variables contained within it.  With a imported csv  I would reference each row item as $_.GivenName , $_.Surname and $_.Name in a for-each loop.

So how to I build that table within the script and reference each item like I would with an imported csv

Thanks

Jonathan

$Password=ConvertTo-SecureString -String "Password2019!" -AsPlainText -Force

$OU=Get-ADOrganizationalUnit -LDAPFilter '(Name=admin)' -SearchBase $(Get-ADDomain | Select-Object -ExpandProperty DistinguishedName) -SearchScope Subtree | Select-Object -ExpandProperty DistinguishedName

$Forest=Get-ADDomain | Select-Object -ExpandProperty Forest


try
{

New-ADUser -Name $Name -AccountPassword $Password -DisplayName "$GivenName + $Surname" -GivenName $GivenName -Path $OU -Surname $Surname -ChangePasswordAtLogon $False -PasswordNeverExpires $False

Get-ADUser $Name | Rename-ADObject -NewName "$GivenName + $Surname"

Get-ADUser $Name | foreach { Set-ADUser $_ -UserPrincipalName ("{0}@{1}" -f $_.SamAccountName,$Forest)}

Write-Host "Created Account: Name $Name" -ForegroundColor Green
}
catch [Microsoft.ActiveDirectory.Management.ADIdentityAlreadyExistsException]
{
Write-Host "Account Exists, skipping: $Name" -ForegroundColor Red
}
Finally
{
Enable-ADAccount $Name
}