我想知道是否有更好的方法可以获取匹配特定查询的单行,而无需搜索两次。 在我最初的代码中,我想计算我的.CSV中有多少行符合我的搜索查询。
$raisins=($table | ? {$_.'fruit' -like '*grapes*' -and $_.'hours in sunlight' -like '*a lot*'}| measure).Count
现在,我的任务是从相同的搜索查询结果中获取一行。
$raisinHit=($table | ? {$_.'fruit' -like '*grapes*' -and $_.'hours in sunlight' -like '*a lot*})
$raisinHit=$raisinHit[0]
然而,我发现我必须使用之前的相同查询搜索我的.CSV真的很低效,只是为了找到我已经掩盖的单个结果。 有一个更好的方法吗?如果是这样,你能解释一下吗?
答案 0 :(得分:1)
只需将匹配项分配给变量,然后返回计数和变量中的元素。
$raisins = @($table |
? {$_.'fruit' -like '*grapes*' -and $_.'hours in sunlight' -like '*a lot*'})
$raisins.count
$raisins[0]
管道周围的@()
确保$raisins
将成为一个数组,即使只返回一个匹配项。