gpt4 book ai didi

.net - 为什么将PSObject添加到Powershell中的ArrayList需要这么长时间?有更好的方法吗?

转载 作者:行者123 更新时间:2023-12-03 01:13:05 25 4
gpt4 key购买 nike

我有以下代码

$listA = *some list of 1000 items*
$listB = *other list*

$newList = New-Object System.Collections.ArrayList
foreach($a in $listA) {
$b = get somevalue from list $listB
$temp = New-Object PSObject
$temp | Add-Member Name $a
$temp | Add-Member Age $b
$newList.Add($temp) | Out-Null
}

我也使用简单数组测试了性能,这更糟。

最佳答案

我认为您的性能问题不是讲究的,而是对象的创建。

使用Add-Member构建对象是V1构造,实际上是创建对象效率最低的方法。每个Add-Member都会破坏原始对象并创建一个全新的对象。由于您已使用V3标记了问题,因此这是一种更好(更快)的对象创建方法:

$listA = *some list of 1000 items*
$listB = *other list*

$newList = New-Object System.Collections.ArrayList
foreach($a in $listA) {
$b = get somevalue from list $listB
$Object = [PSCustomObject]@{
Name = $a
Age = $b
}
$newList.Add($Object)

}

关于.net - 为什么将PSObject添加到Powershell中的ArrayList需要这么长时间?有更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35327309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com