我的班级为$sess = New-PSSession -Credential (Get-Credential)
$dateTime = Invoke-Command -Session $sess -ScriptBlock { Get-Date -Format "o" }
,如下所示。我也有Merge
类,其中包含MergeCollection
的列表。关键是它们的Merge
可能有许多合并。现在我想通过min, max and value
并在我的列表中发现passedValue
在最小和最大之间。请注意,列表中只能有一个合并,其中passedValue
的值可能为Nothing-在这种情况下,Nothing表示不定式。因此,我们可以像Max
那样将100表示为不定式。我确保首先检查是否已存在这种合并。另一方面:
->如果列表中没有
Min = 100 and Max = Nothing
在最小和最大函数之间的合并,则应返回Nothing。->如果通过某种方式存在两次或多次合并,则随机选择其中之一。
->如果列表不包含任何项目,则返回Nothing
实现这种功能的最简单方法是什么?
passedValue
编辑:边界
答案 0 :(得分:1)
我不清楚边界是包含范围还是排他范围,但是更改条件运算符很容易,这应该可以帮助您:
Public Function GetMergeBy(passedValue As Integer) As Merge
Dim result = _merges.Where(Function(m) m.Min < passedValue AndAlso passedValue < If(m.Max,Integer.MaxValue)).ToList()
If result.Count == 0 Then Return Nothing
Static rnd As New Random()
Return result(rnd.Next(result.Count))
End Function
答案 1 :(得分:0)
怎么样
Private Shared PRNG As New Random
Public Function GetMergeBy(passedValue As Integer) As Merge
Dim mie As IEnumerable(Of Merge)
If Me._merges IsNot Nothing Then
'bounds are inclusive or exclusive???
'as coded inclusive
mie = From m In Me._merges
Where passedValue >= m.Min AndAlso (Not m.Max.HasValue OrElse passedValue <= m.Max)
Select m
Return mie(PRNG.Next(mie.Count))
End If
Return Nothing
End Function
编辑:看起来很像乔尔(Joel)回答;)