PowerShell 3.0 CTP1引入了一个新功能[ordered],它有点像OrderedDictionary.我无法想象它的实际用例.为什么这个功能真的有用?有人可以提供一些有用的例子吗?
例如:这是,恕我直言,而不是实际的演示案例:
$a = [ordered]@{a=1;b=2;d=3;c=4}
Run Code Online (Sandbox Code Playgroud)
(我不介意它是否仍然有用,那我只是在寻找其他有用的案例).
我不是在寻找用例OrderedDictionary,确实很有用.但我们可以直接在v2.0中使用它(我做了很多).我试图理解为什么还[ordered]需要这个新功能.
$hash = [ordered]@{}
Run Code Online (Sandbox Code Playgroud)
比...短
$hash = New-Object System.Collections.Specialized.OrderedDictionary
Run Code Online (Sandbox Code Playgroud)
NB ordered不是该类型的真正捷径.New-Object ordered不起作用.
注2:但这仍然是一个很好的捷径,因为(我认为,不能尝试)它创建典型的PowerShell不区分大小写的字典.v2.0中的等效命令实际上太长了:
New-Object System.Collections.Specialized.OrderedDictionary]([System.StringComparer]::OrdinalIgnoreCase)
Run Code Online (Sandbox Code Playgroud) 我在PowerShell中创建了一个自定义对象。我能够解决我想解决的问题。我想要一个包含两列的对象,一列用于网站集,一列用于电子邮件。
但是,我想知道是否有更简单的解决方案。你有什么建议吗?
这是我的代码:
$cred = Get-Credential
Connect-PnPOnline "https://tenant.sharepoint.com" -Credentials $cred
$SiteCollections = Get-PnPTenantSite
$object = @()
foreach ($SiteCollection in $SiteCollections) {
Connect-PnPOnline -Url $SiteCollection.Url -Credentials $cred
$email = Get-PnPRequestAccessEmails
Write-Host "Email for $($SiteCollection.Url): $($email)"
$obj = New-Object System.Object
$obj | Add-Member -type NoteProperty -name Url -value $SiteCollection.Url
$obj | Add-Member -type NoteProperty -name Email -value $email
$object += $obj
}
Write-Output $object
Run Code Online (Sandbox Code Playgroud)