是否有内置方法可以在 PowerShell 中有效搜索唯一的排序数组?

问题描述 投票:0回答:1

PowerShell 是否有内置方法可优化搜索唯一的排序数组或集合中的特定值,并返回搜索集合中找到的值的索引?或者也许是提供这种方法的内置集合类型?

我知道在排序数组或集合中有效查找特定值是一个相当简单的过程,我可以自己编写一个函数来完成此操作,但我讨厌重新发明轮子!然而,我的搜索只是一页一页地描述如何在 PowerShell 中对未排序的数据进行排序。

这是我的具体用例:我有一组 PowerShell 对象形式的 SQL 查询结果,由于 SQL 脚本的编写方式,我知道是唯一的且已排序。我有另一组数据,我需要在 SQL 结果中从另一组数据中找到匹配的值。我希望高效地执行此操作,而不仅仅是迭代循环直到找到匹配项,但我不想为此类常见任务编写自定义逻辑,因为几乎可以肯定 PowerShell 中已经有可用的东西来执行此操作。

powershell search
1个回答
0
投票

根据数据类型,

Array
List<T>
都有自己的
BinarySearch
方法,针对排序集合中的搜索进行了优化。

$array = 50..100
[array]::BinarySearch($array, 75) # Index: 25

[System.Collections.Generic.List[int]] $list = 50..100
$list.BinarySearch(75) # Index: 25

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.